欧姆龙PLC通讯协议

合集下载

欧姆龙plcTCP通讯协议

欧姆龙plcTCP通讯协议

前几天工作需要学习了一下欧姆龙TCP通讯协议。

专注了几天吧,现在总结一下,顺便和大家分享一下欧姆龙plc TCP通讯协议和注意要点,我用的那款PLC是NJ501-1300,我也不清楚欧姆龙别的系列PLC通讯协议有没有区别,我觉得大体应该差不多了吧!朋友们有条件可以试试哈。

我电脑是建立客户端的,plc做位服务器。

这样做有个弊端,每次通讯失败就要重新连接。

TCP通讯有个特点每次通讯前都要先握手,握手成功后才可以发数据。

因为以前没有接触过,不懂,在上面打了好多圈圈,不管是复制别人的通讯格式还是手抄,都通讯失败。

还有一点就是找的通讯手册全是英文的,实在是有点心有余而力不足的感觉。

所以作为新接触TCP通讯协议的朋友一定要注意这点。

下面我们来介绍一下通讯协议,分两部分:1.FINS节点地址数据发送(客户端->服务器)握手命令发送握手格式:上面是从手册上摘的握手格式。

下面我们具体分析一下:FINS(包头)数据长度功能码错误码末位IP地址发送:46494E530000000C000000000000000000000002(本机IP地址末位为02)。

A B C D EA:FINS命令(固定包头)B:数据长度=从功能码数起至数据结尾(以字节为单位,一个字节占用两位)C:功能码分为00000000:客户端服务端00000001:服务端客户端00000002:FINS贞发送命令00000003:FINS贞发送错误通知命令00000006:确立通信连接D:错误码分为00000000:为正常00000001:数据头不是FINS或ASCII格式00000002:数据长度过长00000003:命令(C功能码)错误00000020:连接/通信被占用E:000000C7为本机IP地址末位(十六进制表示),如PLC为客户端:192.168.250.1本机IPC (服务器)IP:192.168.250.02。

再重申一遍,发数据前一定要先发握手数据。

c#基于TCPIP、CIP协议的欧姆龙PLC通信

c#基于TCPIP、CIP协议的欧姆龙PLC通信

c#基于TCPIP、CIP协议的欧姆龙PLC通信⼀、关于CIP协议 CIP通信是Common Industrial Protocl(CIP)的简称,它是⼀个点到点的⾯向对象协议,能够实现⼯业器件(传感器,执⾏器)之间的连接,和⾼等级的控制器之间的连接。

⽬前,有3种⽹络DeviceNet,ControlNet,EtherNet/IP使⽤CIP通信协议作为其上层⽹络协议,由ODVA组织统⼀管理,以确保其⼀致性和精确性。

⼆、EtherNet/IP通信 EtherNet/IP(Ethernet/Industrial Protocol),是⼀个⼯业级的通信⽹络,⽤于⼯业器件间⾼速的信息交换,这些器件包括简单的IO器件(传感器),还有复杂的控制器(机器⼈,PLC,焊机,过程控制器)。

EtherNet/IP使⽤CIP(Common Industrial Protocl),其使⽤EtherNet和TCP/IP技术传送CIP通信包,CIP作为开放的应⽤层,位于EtherNet和TCP/IP协议之上。

三、CIP通信报⽂1.注册会话ID private byte[] Registercmd = new byte[28]{ //--------------------------------------------------------Header 24byte------------------------------------- 0x6F,0x00,//命令 2byte 0x04,0x00,//Header后⾯数据的长度 2byte 0x00,0x00,0x00,0x00,//会话句柄 4byte 0x00,0x00,0x00,0x00,//状态默认0 4byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//发送⽅描述默认0 8byte 0x00,0x00,0x00,0x00,//选项默认0 4byte//-------------------------------------------------------CommandSpecificData 指令指定数据 4byte 0x01,0x00,//协议版本 2byte 0x00,0x00,//选项标记 2byte};2.提取会话ID-注册请求的应答报⽂private byte[] RefRegistercmd = new byte[28]{ //--------------------------------------------------------Header 24byte------------------------------------- 0x6F,0x00,//命令 2byte 0x04,0x00,//CommandSpecificData的长度 2byte 0x6B,0x01,0x01,0x00,//会话句柄 4byte 由PLC⽣成 0x00,0x00,0x00,0x00,//状态默认0 4byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//发送⽅描述默认0 8byte 0x00,0x00,0x00,0x00,//选项默认0 4byte//-------------------------------------------------------CommandSpecificData 指令指定数据 4byte 0x01,0x00,//协议版本 2byte 0x00,0x00,//选项标记 2byte};public byte[] SessionHandle=new byte[4]{0x6B,0x01,0x01,0x00};//从应答报⽂提取的会话ID后续读写PLC的报⽂中,需要包含PLC返回的会话ID3.读数据服务请求报⽂报⽂由三部分组成 Header 24个字节、CommandSpecificData 16个字节、以及CIP消息(由读取的标签⽣成)实例,读取单个标签名为 TAG1的报⽂总长度为64个字节private byte[] Header = new byte[24]{ 0x6F,0x00,//命令 2byte 0x28,0x00,//长度 2byte(总长度-Header的长度)=40 0x6B,0x01,0x01,0x00,//会话句柄 4byte 0x00,0x00,0x00,0x00,//状态默认0 4byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//发送⽅描述默认0 8byte 0x00,0x00,0x00,0x00,//选项默认0 4byte};private byte[] CommandSpecificData = new byte[16]{ 0x00,0x00,0x00,0x00,//接⼝句柄 CIP默认为0x00000000 4byte 0x01,0x00,//超时默认0x0001 4byte 0x02,0x00,//项数默认0x0002 4byte 0x00,0x00,//空地址项默认0x0000 2byte 0x00,0x00,//长度默认0x0000 2byte 0xb2,0x00,//未连接数据项默认为 0x00b2 0x18,0x00,//后⾯数据包的长度 24个字节(总长度-Header的长度-CommandSpecificData的长度)};private byte[] CipMessage = new byte[24]{ 0x52,0x02 //服务默认0x52 请求路径⼤⼩默认2 0x22,06,0x24,0x01,//请求路径默认0x01240622 4byte 0x0A,0xF0,//超时默认0xF00A 4byte 0x0A,0x00,//Cip指令长度服务标识到服务命令指定数据的长度 0x4C,//服务标识固定为0x4C 1byte 0x03,// 节点长度 2byte 规律为 (标签名的长度+1/2)+1 0x91,//扩展符号默认为 0x91 0x04,//标签名的长度 0x54,0x41,0x47,0x31,//标签名:TAG1转换成ASCII字节当标签名的长度为奇数时,需要在末尾补0 ⽐如TAG转换成ASCII为0x54,0x41,0x47,需要在末尾补0 变成 0x54,0x41,0x47,0 0x01,0x00,//服务命令指定数据 默认为0x0001  0x01,0x00,0x01,0x00//最后⼀位是PLC的槽号};PLC回复报⽂:6F0018006B01010000000000000000000000000000000000000000000100020000000000B200 0800 CC 00 0000C1000000 CC-服务标识00-填充字节0000-状态 0为正常 0800:CC-0000的长度C100-数据类型:Bool0000为数据false实例,读取多个标签名为 TAG、TAG1的报⽂总长度为86个字节6F003E006B01010000000000000000000000000000000000000000000100020000000000B2002E005202200624010AF020000A02200224010200060010004C0391035441470001004C039104544 Header:6F003E006B01010000000000000000000000000000000000 24byteCommandSpecificData: 00 00 00 00 0100020000000000B2002E00 16byteCipMessage:5202 20062401 0AF0 2000 0A02 20022401 02000600 1000 4C0391 03 54414700 0100 4C0391045441473101000100010052-服务代码02 -请求路径⼤⼩20062401-请求路径0AF0超时 20 00 CIP指令长度(0A-00之间的长度为32个字节)0A-服务代码(多个标签)02-请求路径⼤⼩20022401请求路径0200 标签的数量0600 偏移量(初始值为:2+标签数量*2)1000 偏移量 =标签服务长度+初始偏移量(有⼏个标签就有⼏个偏移量)4C 03 91 03 54414700 0100 标签TAG 4C039104544147310100 标签TAG1PLC回复报⽂:6F0034006B01010000000000000000000000000000000000000000000100020000000000B20024008A000000020006001300CC000000D00005003232323232CC000000D00005003232323232 76byteHeader:6F0034006B01010000000000000000000000000000000000 24byteCommandSpecificData:000000000100020000000000B2002400 16byteCipMessage:8A00 00000200 06001300 CC 00 0000 D000 0500 3232323232 CC000000D000050032323232328A-多个标签0000 -状态0200-项数0600-标签TAG偏移量1300-标签TAG1偏移量 0000-状态0正常D000-数据类型:string0500:字符串长度(字符串类型特有的)3232323232-数据 "22222":⽬前常⽤的数据类型: C1-BOOL C2-SINT C3-Short C4-Int C7-UShort C8-UInt CA-Float CB -Double D0-String4.写⼊数据服务报⽂实例,往标签名为:TAG1 写⼊true 数据类型为 bool写⼊报⽂:68byte6F002C006B01010000000000000000000000000000000000 000000000100020000000000B2001C00 5202200624010AF00E004D03910454414731C1000100010001000100header:6F002C006B01010000000000000000000000000000000000 24byteCommandSpecificData:000000000100020000000000B2001C00 16byteCIPmessage:52 02 20062401 0AF0 0E00 4D 03 91 04 54414731 C100 0100 0100 01000100 28byte52-服务标识02-请求路径⼤⼩ 20062401-请求路径,默认0AF0-超时0E00-CIP指令长度(绿⾊部分的长度)4D-写⼊标识03-(标签名的长度+1)/2+1 91-扩展符号04-标签TAG1的长度54414731 -标签名的ASCII表⽰C100-数据类型 0100-默认项 0100-数据 TRUE(2byte) 01000100 - 默认最后⼀位为PLC槽号PLC回复报⽂:6F0014006B0101 00000 00000000000000000000000000000 000000000100020000000000B2000400CD000000 44byteheader:6F0014006B01010000000000000000000000000000000000 24byteCommandSpecificData:000000000100020000000000B2000400 16byteCIPMessage:CD 00 0000 CD-服务标识 00-填充字节 0000-状态好注意:当写⼊字符串类型时,写⼊的数据长度为奇数时,需要在数据后填充⼀个字节05.扩展知识⾸先建⽴起TCP连接,CIP通信端⼝默认为44818。

基于欧姆龙PLC#FinsTcp协议上位机通讯(一)-PLC配置

基于欧姆龙PLC#FinsTcp协议上位机通讯(一)-PLC配置

基于欧姆龙PLC#FinsTcp协议上位机通讯(⼀)-PLC配置
背景:
在做⼯控系统集成软件开发中遇到需要和欧姆龙PLC对接,考虑项⽬⼯期优先想到了采⽤FinsTCP通讯协议。

接下来就是记录如何⼀步步实现这⼀通讯模块,记录⾃⼰的实现过程以便⾃⼰不会忘记,也为后续有遇到同样问题的朋友带来帮助。

本篇介绍如何配置欧姆龙PLC及PLC数据块构建,你可以了解到PLC连接,地址块数据监控。

以下为配置步骤
1.连接
⽹线直连电脑,注意⽹线查TCP/IP通讯端⼝;
这⾥采⽤“Sysmac studio”编程环境;需⾃⾏安装;
连接测试
创建⼯程配置IP,默认IP->192.168.250.1
配置完指定IP后需上传到PLC.先转在线
再上传
这样IP就设置完毕。

2.Fins设置
默认9600端⼝
默认设置
3. 建⽴协议数据块地址
根据上位机与PLC协议建⽴数据结构
这样基本就完成了上位机与PLC通讯要求。

接下来进⾏测试!
4.测试
先转到在线,再监控地址
监控如下,可以⼿动修改值
使⽤finstcp协议编写的上位机⼯具测试:
成功!
下⼀篇介绍如何基于C#编程语⾔实现与欧姆龙PLC通讯.。

欧姆龙PLC通信协议

欧姆龙PLC通信协议

欧姆龙 PLC 通信协议参考: W342 --SYSMAC CS/CJ Series Communications Commands欧姆龙通信命令可分为两类:1: C-mode commands 只可通过串口通讯 2: FINS commands 既可通过串口通讯也可通过各类网络通信(适应性较强) 面只讲 FINS 命令一、命令发送:FINS 直连发送命令如下:FINS command code见下表5-1-1 FINS COmmandSThefdlwirg table IlStS the FINS CCXnmands.命令后面紧跟着就是内存区域寻址,见下表Command Code 后面紧跟着需要访问的地址,地址可分为按字地址或按位地址,取决于你需要访的的是字还是某一位。

由紧跟着Command Code 后面的那个字节( I/O memory area designation )区分是读取字还是读取位,还是写入字或写入位,具体定义见下表:5-2-2 I/O MemOry AddreSS DeSignatiOnS按字地址:选取表中Data Type 列中为Word 的命令(命令在Memory area code 内)按字地址的三个地址位中,只使用前两个,最后一个字节为Ascii 码”00”,其后跟两个字节为需要传输的数据量,然后紧跟着就是传输的数据,数据高位在前低位在后。

例如从H12 开始读取7 个字的数据,命令为:0101 B2 001200 0007 例如将W3、W4、W5 分别置数据1234 、ABCD、7890,命令为:0102 B1 000300 0003 1234ABCD7890按位地址:选取表中Data Type 列中为Bit 的命令(命令在Memory area code 内)按位地址的三个地址位中,前两个指示位所在的字,最后一个字节指示位在字中的位置(0~15),其后跟两个字节为需要传输的数据量,然后紧跟着就是传输的数据,每一位的值用一个字节的数据代替,当寻址的位为0 时用ascii码“ 0”代替,当寻址的位为1 时用ascii 码“ 1”代替。

Omron-Fins通讯协议

Omron-Fins通讯协议
00 00成功与否标识00 40或95 05标识码不清楚
00 02为读取内容
如果要把10个数据写入到从DM10开始的10个数据区中
则发送命令如下:
80 00 02 00 56 00 00 13 00 00 01 02 82 00
Data1-Data10
具体说明如下:
UDP/IP帧
FINS命令帧
80 00 02 00 0A
0A
源IP地址
目标IP地址
源IP地址:PLC地址(IP地址最后位)
目标IP地址:通讯主机地址(IP地址最后位)
而PLC返回命令如下:
80 00 02 00 00 56 00 00 13 00 00
不同pic型号返回有区别,这里仅作参考
实例:(读取CIO区452地址:01C4;长度为1个字)
发送码:80 00 02 00 20 00 00BE00 00 01Байду номын сангаас01 80 01C400 00 01说明80 00 02 00消息头
响应
01 01
00 00
Data1—Data10
命令码
结束码
读取的10个字的数据
当结束码不为0000时,则代表执行错误,应重发当前帧。
2
Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以
太网的包头就可以了。具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
2.1 FINS UDP/IP
OMRON FINS
1. OMRON FINS
1.1
FINS(factory in terface network service)通信协议是欧姆龙公司开发的用于工业
自动化控制网络的指令/响应系统。运用FINS指令可实现各种网络间的无缝通信,通

欧姆龙plc通讯协议

欧姆龙plc通讯协议

欧姆龙PLC通讯协议简介PLC(Programmable Logic Controller,可编程逻辑控制器)是一种用于自动化控制的电子设备,广泛应用于工业控制系统中。

欧姆龙(Omron)是一家知名的自动化控制解决方案提供商,其PLC产品在许多行业中被广泛使用。

本文档将介绍欧姆龙PLC通讯协议,包括其基本原理、通讯方式以及常见的通讯协议类型。

通讯协议的基本原理在自动化控制系统中,PLC通讯协议起着关键的作用。

它定义了PLC与其他设备(如上位机、传感器、执行器等)之间进行数据交换的规则和格式。

通讯协议使得不同设备之间能够准确、可靠地传输和解析数据,实现各种控制操作。

通讯协议的基本原理包括以下几个方面:1.数据格式:通讯协议定义了数据在传输过程中的格式,通常包括数据头、数据体和数据尾等部分。

这些格式使得接收设备能够准确地解析数据,并执行相应的操作。

2.通讯方式:通讯协议规定了PLC与其他设备之间进行通讯的方式,包括串口通讯、以太网通讯等。

不同的通讯方式具有不同的特点和应用场景,选择合适的通讯方式可以提高通讯的稳定性和速度。

3.协议类型:通讯协议根据不同的应用场景和需求,分为多种类型,如Modbus协议、Profibus协议等。

每种协议都有自己的特点和优势,根据实际需求选择合适的协议能够实现更好的通讯效果。

欧姆龙PLC通讯方式欧姆龙PLC支持多种通讯方式,常见的包括串口通讯和以太网通讯。

下面将对这两种通讯方式进行简要介绍。

串口通讯串口通讯是一种基于RS232或RS485等标准的通讯方式,通过串口将PLC与其他设备连接起来。

欧姆龙PLC通常支持多个串口接口,可以与多个设备进行通讯。

串口通讯的优点是成本较低,适用于小规模的控制系统。

然而,由于串口通讯的传输速率较低,其通讯距离有限,且易受干扰。

因此,在一些大规模、复杂的控制系统中,串口通讯的应用相对较少。

以太网通讯以太网通讯是一种基于以太网协议的通讯方式,通过以太网将PLC与其他设备连接起来。

欧姆龙plc通讯协议格式

欧姆龙plc通讯协议格式

欧姆龙plc通讯协议格式
欧姆龙CPM1A型plc与上位计算机通信的顺序是上位机先发出命令信息给PLC,PLC返回响应信息给上位机。

每次通信发送/接受的一组数据称为一“帧”。

帧由少于131个字符的数据构成,若发送数据要进行分割帧发送,分割帧的结尾用CR码一个字符的分界符来代替终终止符。

发送帧的一方具有发送权,发送方发送完一帧后,将发送权交给接受方。

发送帧的基本格式为:
其中:
@ ——为帧开始标志;
机号——指定与上位机通信的PLC(在PLC的DM6653中设置);
识别码——该帧的通信命令码(两个字节);
正文——设置命令参数;
FCS——帧校验码(两个字符),它是从@开始到正文结束的所有字符的ASCⅡ码按位异或运算的结果;
终止符——命令结束符,设置“*”和“回车”两个字符表示命令结束。

响应的基本格式为:
其中:
@ ----为帧开始标志;
机号----应答的的PLC号,与上位机指定的PLC号相同;
识别码----该帧的通信命令码,和上位机所发的命令码相同;
结束码----返回命令结束有无错误等状态;
正文——设置命令参数,仅在上位机有读数据时生效;
FCS——帧校验码,由PLC计算给出,计算方法同上;终止符——命令结束符。

omron plc tcp 协议

omron plc tcp 协议

omron plc tcp 协议
欧姆龙PLC TCP协议是一种工业控制协议,允许运行欧美龙PLC(Programmable Logic Controller)的计算机系统和其他计算机系统以及计算机设备之间的双向通信。

欧姆龙
PLC TCP协议是基于RJ45连接和TCP / IP协议(Transmission Control Protocol / Internet Protocol)来实现实时数据交换,有助于构建一个引人入胜、安全可靠的PLC网络。

欧姆龙PLC TCP协议是特别硬件设计,以降低通信代价,使用范围更高,能够满足采集及控制技术等行业对PLC网络要求。

这种协议提供了多种数据传输机制,从而实现多种功能,比如软件和硬件调试、连接分布式系统、灵活应用网络设备等等。

运行欧姆龙PLC TCP协议的系统可以有效地处理大量信息,可以实现远程监控和远程控制,同时可以提供全面的报警信息,实现实时的备份系统。

此外,在PLC系统中运行欧姆龙PLC TCP协议的系统还可以提供用户自定义的安全策略
管理,加强安全机制,确保网络是安全可靠的。

总而言之,欧姆龙PLC TCP协议是一种行业领先的创新协议,为PLC系统提供了可靠的、灵活的通信技术。

它可以实现大容量数据传输,提供更安全、更可靠的PLC网络应用,
是PLC网络管理的理想解决方案。

关于欧姆龙plc串口通讯协议

关于欧姆龙plc串口通讯协议

1.无协议通信无协议通信是不使用固定协议,协议不经过数据转换,通过通信端口输入、输出指令,如txd、rxd指令,发送接收数据的功能。

这种情况下,通过plc的系统设定将串行端口的串行通信模式设为无协议通信(串行端口1、2都可以)。

通过该无协议通信,与带有rs-232端口或rs-422a/485 端口的通用外部设备,按照txd、rxd指令进行单方面发送接收数据。

例如,可进行来自条形码阅读器的数据输入以及向打印机的数据输出等简单的数据接收和发送。

无协议通信时发送接收的消息帧:开始代码和结束代码之间的数据用txd指令进行发送,或者将插入“开始代码”及“结束代码”之间的数据用rxd 指令进行接收。

当按照txd指令发送时。

将数据从i/o存储器中读取后发送。

按照rxd指令接收时,仅将数据保仔到i/o存储器的指定区域。

“开始/结束代码”均由plc系统设定来指定。

1次txd指令或rxd指令可发送的信息的长度(不包括开始代码或结束代码)最大是256字节。

2.nt链接通信cp1h在pt(可编程终端)及nt链接(1台链接多台的1:n模式)下可进行通信,但在nt链接(1:1模式)下不能进行通信。

pt为nt31/631(c)-v2系列触摸屏或ns系列触摸屏的情况下,可使用高速nt链接。

nt链接可以通过plc系统设定及pt本体上的系统菜单进行设定。

利用pt本体上的系统菜单进行设定时,可通过以下操作进行pt侧的设定。

(1)在pt本体的系统菜单内的存储切换菜单的【串行端口a】或【串行端口b】,选择【nt链接(1:n)】。

(2)按【设定】按钮,将【通信速度】设定为【高速】。

3.上位链接通信上位链接包括两个方面,即从上位计算机到plc和plc到上位计算机。

在前者中,对于cpu单元,从上位计算机发布上位链接指令(c模式指令)或fins指令,进行plc的i/o存储器的读写、动作模式的变更及强制置位/复位等各种控制。

在后者中,对于上位计算机,从cpu单元发出fins指令,发送数据和信息。

欧姆龙plc网口通讯设置

欧姆龙plc网口通讯设置

欧姆龙plc网口通讯设置欧姆龙PLC(Programmable Logic Controller)是一种常用于自动化控制系统的设备,其网口通讯设置对于实现数据传输和远程控制至关重要。

本文将探讨欧姆龙PLC网口通讯设置的基本原理和步骤。

在实施自动化控制系统时,PLC被广泛应用于各个领域,如工业生产线、机械装置以及智能建筑等。

而PLC的网口通讯设置是实现PLC与其他设备进行数据交换和远程控制的关键之一。

首先,我们来了解一下PLC网口通讯设置的基本原理。

PLC中的网口通讯模块是PLC与其他设备进行数据传输的接口,通常采用以太网通讯或者串行通讯方式。

以太网通讯方式具有传输速度快、稳定性好的特点,适用于大容量数据传输和实时控制。

而串行通讯方式则适用于小容量数据传输和远程监控领域。

在进行PLC网口通讯设置之前,我们首先需要了解PLC的通信参数,如IP地址、子网掩码、网关等。

这些参数需要与其他设备在同一个网络中,才能实现数据交换和远程控制。

其次,我们需要使用PLC的编程软件,如CX-Programmer或者PLC Designer,通过连接电脑和PLC,进行网口通讯设置。

步骤如下:1. 打开编程软件,并连接电脑与PLC。

确保PLC和电脑之间的连接正常。

2. 在编程软件中点击“网口设置”或者“通信配置”等选项,进入PLC网口通讯设置界面。

3. 在设置界面中,选择通信接口类型为以太网或者串行口,根据实际需要进行选择。

4. 输入PLC的IP地址、子网掩码和网关等通信参数。

确保这些参数与其他设备在同一个网络中。

5. 进行网络测试,确认网络连接正常。

可以通过ping命令或者软件提供的网络测试工具来进行测试。

6. 在通信设置界面中选择所需的通信协议和通信方式。

不同设备之间通常采用不同的通信协议,如Modbus、EtherNet/IP等。

7. 设置数据传输方式和端口号。

可以选择TCP/IP方式或者UDP方式进行数据传输,并设置相应的端口号。

欧姆龙plc串口Fins命令协议通讯演示

欧姆龙plc串口Fins命令协议通讯演示

Fins命令+Hostlink协议通讯实验一、实验配置硬件:CPU单元:CJ2M-CPU35RS232串口选件板:CP1W-CIF01USB转232连接电缆:CS1W-CIF31软件:CX-Programmer、串口调试助手UartAssist二、PC主机直连PLC串口命令帧格式介绍命令格式响应格式PC主机直连PLC的情况下,主机发送命令给PLC,发送命令格式如下:P54:Hostlink协议起始代码Unit No.:单元号,对应PLC内置串口或串行通讯单元设置的Hostlink单元号;Header code:在PC主机直连PLC的情况下,头代码为FAResponse wait time:设置范围为0~F,单位为10ms,例如设置为2,则响应等待时间为20msICF、DA2、SA2:在PC主机直连PLC的情况下,固定为00; SID:通常设置为00Fins command code:参考Fins通讯手册P125读命令:0101写命令:0102Text:具体操作内容,读写区域、读取起始地址、数据长度等内容存储区代码:参考Fins通讯手册P137DMword:82Wbit:31Wword:B1CIO区bit:30Tips:使用Fins指令最大可读取538个字节;一条命令不能超过1114个字符;三、串口通讯调试实例实例1——DM数据寄存器区读写实例;1、读取D0开始1个通道的值发送命令:00FA 000000000 0101 82 000000 0001 7C ↙回车键返回命令码:00FA000↙回车键2、读取D100开始的50个通道发送命令:00FA0000000000327E↙回车键3、写D200开始的2个通道发送命令:00 FA 0 00000000 0102 82 00C8 00 0002 0F↙回车键Header code:在PC主机直连PLC的情况下,头代码为FAResponse wait time:设置范围为0~FICF、DA2、SA2:在PC主机直连PLC的情况下,固定为00; SID:通常设置为00Fins command code:参考Fins通讯手册P125读命令:0101写命令:0102DMword:82Wbit:31Wword:B1CIO区bit:3000c8 就是D200地址00表示通道中的位0002表示读取2个通道值响应命令:00FA0000↙回车键实例2——Wr工作区读写操作1、读取W10开始的8个通道发送命令:00FA0000000000101B1000A0000087D↙回车键2、写W20开始的5个通道发送命令:00FA0000000000102B0000506↙回车键响应命令:00FA0000↙回车键总结:由上述例子可得,对于PC主机直连PLC串口的情况下,无论什么存储区,读操作均为0101,写操作为0102,只需将不同存储区的代码更改即可;建议PC与PLC交换数据时,尽量采用连续的通道一个字的形式进行交换;。

欧姆龙PLC全系列HostLink通信协议串口动态链接库DLL

欧姆龙PLC全系列HostLink通信协议串口动态链接库DLL

一、最新欧姆龙PLC全系列Host Link通信协议串口动态链接库DLL(以下简称DLL),是为知足工业通信需要,针对工业领域要求上位机对PLC实时采集与控制的组态编程而设计。

本DLL 是采用Delphi语言开发的标准串口通讯库,具有以下特点:1)、实时性、可靠性好,可根据通信数据量自行调整通信时间;2)、适用于多PLC联网和上位机通信,满足多方面的需要;3)、函数接口功能全,操作简单;4)、附加实用转换与读取函数,易于快速开发(VC等非RAD开发环境的开发);5)、支持USB、PC扩展卡等扩展串口号;6)、支持多种操作系统win9x/win2000/winXP;7)、可在多种编程环境下使用,例如VB、VC、Delphi等开发环境。

二、DLL函数说明1、打开串口Function ComOpen(nport,BaudRate,DataBits,Parity,StopBits:longint;User:Pchar):longint;stdcall;参数:nport: 打开串口号,取值为1~8,代表COM1~COM8;BaudRate:波特率,取值为1200、2400、4800、9600、19200、38400 (推荐使用9600或19200);DataBits:数据位,取值为5、6、7、8(推荐使用7或8);Parity:校验位,取值为1(E)、2(O)、3(M)、4(S)、5(N),注括号里是校验位的英文缩写;StopBits:停止位,取值为1(1)、2(2)、3,注括号里是实际的停止位位数User:DLL授权用户名;返回值:长整型,操作成功返回1,否则返回0;打开串口不成功即返回0时的原因:1)、串口不存在或被占用; 2)、DLL试用过期; 3)、DLL授权注册不正确。

使用举例:ComOpen(1,9600,7,1,1,'wjun') , 打开COM1口,并设定波特率=9600、数据位=7、校验位=E(偶校验)、停止位=1,授权用户='wjun'。

欧姆龙PLC通信协议

欧姆龙PLC通信协议

欧姆龙PLC通信协议参考:W342--SYSMAC CS/CJ Series Communications Commands欧姆龙通信命令可分为两类:1:C-mode commands只可通过串口通讯2:FINS commands既可通过串口通讯也可通过各类网络通信(适应性较强)=========================================================== ====================下面只讲FINS命令一、命令发送:FINS直连发送命令如下:FINS command code见下表命令后面紧跟着就是内存区域寻址,见下表Command Code 后面紧跟着需要访问的地址,地址可分为按字地址或按位地址,取决于你需要访的的是字还是某一位。

由紧跟着Command Code后面的那个字节(I/O memory area designation)区分是读取字还是读取位,还是写入字或写入位,具体定义见下表:按字地址:选取表中Data Type列中为Word的命令(命令在Memory area code内)按字地址的三个地址位中,只使用前两个,最后一个字节为Ascii码”00”,其后跟两个字节为需要传输的数据量,然后紧跟着就是传输的数据,数据高位在前低位在后。

例如从H12开始读取7个字的数据,命令为:0101 B2 001200 0007例如将W3、W4、W5分别置数据1234、ABCD、7890,命令为:0102 B1 000300 0003 1234ABCD7890按位地址:选取表中Data Type列中为Bit的命令(命令在Memory area code内)按位地址的三个地址位中,前两个指示位所在的字,最后一个字节指示位在字中的位置(0~15),其后跟两个字节为需要传输的数据量,然后紧跟着就是传输的数据,每一位的值用一个字节的数据代替,当寻址的位为0时用ascii码“0”代替,当寻址的位为1时用ascii 码“1”代替。

omronfins通讯协议

omronfins通讯协议

OMRON FINS 通讯1. OMRON FINS 通讯FINS 通讯概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。

运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。

FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。

1.2 Fins 帧的结构发送命令结构:发送命令结构:响应命令结构:命令码: 01 01 读数据 01 02 写数据结束码: 00 00 无错误,否则执行出错;举例说明:存储区代码(82代表D 区 80代表CIO 区)2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。

具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。

FINS UDP/IP的帧格式UDP/IP的帧格式:共10个字节,其名称如下:其每个字节的具体解释如下:ICF:发送接收标志字节,发送报文:ICF=80HEX;响应报文:ICF=C0;RSV:固定为00HEX;GCT:固定为02HEX;DNA:目标网络号;本网络:00;远程网络:01-7F;DA1:目标节点号;对于以太网来说,即该网络IP地址最后一位的值;DA2:目标单元号;对于CPU来说,固定为00;SNA:源网络号;本网络:00;SA1:源节点号;IP地址最后一位的值;SA2:源单元号:可设置为与目标单元号相同;SID:服务ID,响应端将接收过来的SID复制后添加到响应帧中;举例说明:PC IP地址: IP地址:如果要请求DM10开始的10个字的内容80 00 02 00 00 56 00 00 13 00 00 Data1—Data10不同plc型号返回有区别,这里仅作参考实例:(读取CIO区452地址:01 C4;长度为1个字)发送码:80 00 02 00 20 00 00 BE 00 00 01 01 80 01 C4 00 00 01说明 80 00 02 00消息头20 为PLC地址00 00 默认BE 为计算机地址00 00 默认01 01 命令码80 读取区域01 C4 00读取地址00 01 读取长度返回码:c0 00 02 00 be 00 00 20 00 00 01 01 00 00 00 02说明:c0 00 02 00 be 00 00 20 00 00为网络头01 01其中第二个01位命令码00 00成功与否标识 00 40 或95 05 标识码不清楚00 02为读取内容如果要把10个数据写入到从DM10开始的10个数据区中则发送命令如下:80 00 02 00 56 00 00 13 00 00 01 02 82 00 0A 00 00 0A Data1-Data10 具体说明如下:PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP 客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。

OmronFins通讯协议

OmronFins通讯协议

OMRON FINS 通 讯1. OMRON FINS 通讯1.1 FINS 通讯概述FINS (factory in terface network service )通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。

运用FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个 PLC 数据区的内容,甚至控制其运行状 态,从而简化了用户程序。

FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。

命令码:01 01 读数据01 02 写数据结束码:00 00无错误,否则执行出错;举例说明:存储区代码(82代表D 区80代表CIO 区) 响应1.2 Fins 帧的结构发送命令结构:发送命令结构:命令码 (2个字节)响应命令结构:命令码(2个字节) 正文(根据不同的命令长度不正文(根据不同的命令长度不2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。

具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。

2.1 FINS UDP/IP 的帧格式ICF发送接收标志字节,发送报文:ICF=80HEX响应报文:ICF=CQRSV固定为OOHEX;GCT固定为02HEX;DNA目标网络号;本网络:00;远程网络:01-7F;DA1:目标节点号;对于以太网来说,即该网络IP地址最后一位的值;DA2: 目标单元号;对于CPU来说,固定为00;SNA源网络号;本网络:00;SA1:源节点号;IP地址最后一位的值;SA2源单元号:可设置为与目标单元号相同;SID:服务ID,响应端将接收过来的SID复制后添加到响应帧中;举例说明:PC IP 地址:10.11.1.19PLC IP 地址:10.11.1.86如果要请求DM10开始的10个字的内容目标IP地址:通讯主机地址(IP地址最后位)而PLC返回命令如下:80 00 02 00 00 56 00 00 13 00 00 Data—Data10 不同pic型号返回有区别,这里仅作参考实例:(读取CIO区452地址:01 C4;长度为1个字)发送码:80 00 02 00 20 00 00 BE 00 00 01 01 80 01 C4 00 00 01说明80 00 02 00消息头20为PLC地址00 00默认BE为计算机地址00 00 默认01 01命令码80读取区域01 C4 00读取地址00 01读取长度返回码:c0 00 02 00 be 00 00 20 00 00 01 01 00 00 00 02说明:c0 00 02 00 be 00 00 20 00 00 为网络头01 01其中第二个01位命令码00 00成功与否标识00 40或95 05标识码不清楚00 02为读取内容如果要把10个数据写入到从DM10开始的10个数据区中则发送命令如下:80 00 02 00 56 00 00 13 00 00 01 02 82 00 0A 00 00 0A Data1-Data1080 00 02 00 00 14 00 00 01 02 00 00测试工具截图:2.2 FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP 客户端(PC需向TCP服务器(PLC发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。

欧姆龙plc通讯协议

欧姆龙plc通讯协议

欧姆龙plc通讯协议欧姆龙PLC(Programmable Logic Controller)通信协议是用于PLC与外部设备进行数据传输的规范。

在工业自动化领域中广泛应用的PLC通信协议有很多种,其中欧姆龙PLC通信协议是由日本欧姆龙公司开发的,适用于欧姆龙PLC与其他设备之间的通信。

欧姆龙PLC通信协议分为串行通信和以太网通信两种方式。

串行通信使用RS-232C或RS-485接口进行数据传输,而以太网通信使用乙太网进行数据传输。

两种通信方式各有优劣,可以根据实际需求选择合适的通信方式。

欧姆龙PLC通信协议主要包括通信参数设置、数据传输、数据读写及状态监测等功能。

通信参数设置包括通信端口号、波特率、数据位、校验位、停止位等参数的设置。

数据传输可以通过发送和接收数据帧来实现,数据帧包括起始符、目的地址、源地址、数据长度、校验位等信息。

数据读写可以通过读取和写入寄存器的方式来实现,可以实现对PLC中的输入信号和输出信号的读取和控制。

状态监测功能可以实时监测通信连接状态,包括通信故障、通信超时等状态。

欧姆龙PLC通信协议的优点在于稳定性高、可靠性强、数据传输速度快。

它可以实现PLC与其他设备之间的高效通信,例如与人机界面HMI进行数据交换、与上位机进行数据采集和控制等。

通过欧姆龙PLC通信协议,可以实现对生产过程的监控和控制,提高生产效率和品质。

虽然欧姆龙PLC通信协议在工业自动化领域中得到了广泛应用,但它也存在一些局限性。

例如,通信距离有限,一般不超过几千米;通信速度受限,无法满足高速数据传输的需求;另外,由于欧姆龙PLC通信协议是专有协议,与其他厂家的设备之间的通信可能存在一定的兼容性问题。

总的来说,欧姆龙PLC通信协议是工业自动化领域中非常重要的一种通信协议,它为PLC与外部设备之间的数据传输提供了可靠的规范。

通过合理的设置通信参数和灵活的数据读写方式,可以实现PLC与其他设备之间的高效通信,提高生产过程的自动化水平。

OMRONPLC通讯协议

OMRONPLC通讯协议

OMRONPLC通讯协议1. FINS协议(Factory Intelligent Network Service):FINS是OMRON PLC最常用的通信协议之一,用于在OMRON PLC和上位机之间进行数据传输和远程控制。

FINS协议支持多种通信介质,如串行通信、以太网通信等,并提供高效、稳定的数据传输方式。

3. Modbus协议:Modbus是一种常用的串行通信协议,用于在OMRON PLC和其他设备之间进行数据交换。

Modbus协议简单易用,适用于小型系统和较简单的控制任务。

它支持多种传输介质,如串口、以太网等,并提供实时数据传输和远程设备控制功能。

除了以上几种常见的OMRON PLC通信协议外,还有一些其他协议,如Profibus、Ethernet/IP等,它们具有不同的特点和适用范围,用于满足不同应用场景的需求。

OMRONPLC通信协议的实现方式主要有两种:点对点通信和多点通信。

点对点通信是指一台OMRONPLC与一台上位机之间建立独立的通信连接,通过指令和数据交换实现通信。

而多点通信是指一台OMRONPLC与多台上位机之间建立共享的通信连接,可以同时与多台上位机进行数据交换和远程控制。

在OMRONPLC通信协议的应用中,通常需要先进行通信参数配置和连接设置,然后根据协议规范编写相应的通信程序。

通信程序通常包括发送和接收数据的指令、数据格式的转换和解析等部分。

通过编写和调试通信程序,可以实现与OMRONPLC之间的有效通信和数据交换。

总之,OMRONPLC通信协议是实现与OMRONPLC之间通信的一种标准协议,它具有丰富的功能、稳定的性能和广泛的适用性。

通过选择合适的通信协议和编写相应的通信程序,可以实现高效、可靠的数据传输和设备控制,提升工业自动化系统的效率和可靠性。

欧姆龙HostLink入门

欧姆龙HostLink入门

一、 HostLink简介欧姆龙公司的CP、CQM、C200、CJ、CS1等PLC的串行通讯都是采用HostLink协议进行通讯的,HostLink协议是欧姆龙的专有协议,通过HostLink协议使用计算机的串行口可与OMRON的PLC设备通讯。

上位机链接系统即Hostlink 系统是对于FA系统一种即优化又经济的通信方式,它适合一台上位机与一台或多台PLC进行链接。

上位机可对PLC传送程序,并监控PLC的数据区,以及控制PLC 的工作情况。

HOSTLINK系统允许一台上位机通过上位机链接命令向HOSTLINK系统的PLC发送命令,PLC处理来自上位机的每条指令,并把结果传回上位机。

系统特点:通信:即可采用RS-232C方式,又可采用RS-422方式。

RS-232C方式是基于1:1的通信,距离为15m。

RS-422方式是实现1:N的通信,即一台上位机与多台PLC进行通信,最多可有32台PLC连接到上位机,通信距离最大可达500m.上位机监控:上位机可对PLC的程序进行传送或读取,并可对PLC数据区进行读写操作双重检查系统:所有通信都将作奇偶检验和帧检验,从而能估计出通信中的错误.系统配置:RS-232C链接(1:1):-使用PLC自带的RS-232C口.-使用上位链接单元.-使用通信板.RS-422链接(1:N):-CPM1-CIF11为外设口转RS-422口的适配器.-NT-AL001为RS-232C与RS-422转换的适配器.-B500-AL001为分支器,其功能是将一路RS-422信号转成两路RS-422信号.-上位机链接模块为C200H-LK202,是带RS-422端口的模块.-也可用通信板进行连接。

其中:欧姆龙CJ1G计数器C和计时器的寄存器的地址可以共用,就是分别有,0~4096个地址,而我们的驱动默认是两个共用一个0-4096寄存区,所以读计数器C区的时候,需要在偏移地址加2048,就是如果读地址11,就得写2059.二、硬件接线2,3脚直连,上位机端的串口5角连接到plc端串口的9脚。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档