关于OMRON CIP通信的编程
- 格式:pdf
- 大小:872.53 KB
- 文档页数:23
欧姆龙PLC的通信设置通信前需在系统设定区域的DM6650-DM6653中进行通信条件设定,具体内容见表。
表plc通信设定区功能说明通道地址位功能缺省值DM665000-07上位链接外设通信口通信条件标准格式设定:00:标准设定(启动位:1位、字长:7位、奇偶校验:偶、停止位:2位、比特率:9600bps)01:个别设定(由DM6651设定)外设通信口设为上位链接08-111:1链接(主动方)外设通信口1:1链接区域设定0:LR00-LR1512-15全模式外设通信口使用模式设定0:上位链接2:1:1链接从动方3:1:1链接主动方4:NT链接DM665100-07上位链接外设通信口比特率设定00:1200bps 01:2400bps 02:4800bps 03:9600bps 04:19200bps(可选)08-15上位链接外设通信口帧格式设定启动位字长停止位奇偶校验00:1 7 1 偶校验01:1 7 1 奇校验02:1 7 1 无校验03:1 7 2 偶校验04:1 7 2 奇校验05:1 7 2 无校验06:1 8 1 偶校验07:1 8 1 奇校验08:1 8 1 无校验09:1 8 2 偶校验10:1 8 2 奇校验11:1 8 2 无校验DM665200-15上位链接外设通信的发送延时设定设定值:0000-9999(BCD),单位10msDM665300-07上位链接外设通信时,上位Link模式的机号设定设定值:00-31(BCD)08-15不可使用。
omron nx 系列tcp通讯指令的用法-回复Omron NX系列是一种先进的可编程控制器(PLC),可用于自动化控制系统。
在这篇文章中,我们将详细介绍Omron NX系列的TCP通信指令的用法。
首先,我们将简要介绍Omron NX系列的基本概念,然后深入探讨TCP通信指令的各种用途和步骤。
Omron NX系列是Omron公司推出的一款功能强大的可编程控制器系列。
它使用先进的技术和软件平台,可广泛应用于工业自动化和控制系统中。
NX系列将数字和模拟输入/输出模块与现代化的通信功能相结合,为用户提供了高度灵活的控制方案。
TCP(传输控制协议)是一种用于基于IP(Internet Protocol)网络的通信协议。
TCP协议提供了可靠的、双工的数据传输,确保数据在发送和接收之间的可靠性。
NX系列PLC支持TCP通信指令,这使得它们能够与其他设备和系统进行高效的数据交换。
通过使用TCP通信指令,可以实现以下功能:1. 数据的读取和写入:可以从其他设备中读取数据,并将本地数据写入到其他设备中。
这样,PLC可以从其他设备中获取所需的信息,并将自己的数据发送到其他设备。
2. 远程监控和控制:可以通过TCP通信指令远程监控和控制NX系列PLC。
这使得操作员可以从远程位置对PLC进行监控和操作,提高了生产线的效率和灵活性。
3. 数据交换:通过TCP通信指令,可以在不同的NX系列PLC之间交换数据。
这样,不同的PLC可以共享数据,从而实现更高级别的控制和协调。
下面,我们将一步一步深入探讨Omron NX系列TCP通信指令的用法:1. 配置网络设置:首先,我们需要在NX系列PLC上配置网络设置。
这包括配置IP地址、子网掩码、网关等。
这些设置将允许PLC与其他设备进行通信。
2. 建立TCP连接:通过使用Omron NX系列PLC的TCP通信指令,可以建立与其他设备的TCP连接。
这需要指定目标设备的IP地址和端口号。
3. 发送和接收数据:一旦建立了TCP连接,就可以使用TCP通信指令发送和接收数据。
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与西门子TCP通讯一、欧姆龙plc的设置1、IP地址的设置通过拨码盘来设定耦合器的IP地址,IP地址的设定规章如下:NX-EIC202 的拨码设置:NX-EIC202 的IP 地址设置:通过拨码设置,节点号拨03,4号拨码OFF,表示IP 为:192.168.250.3(详见EIC202 的IP 地址设置)2、端口号的设置首先打开Network Configurator软件。
插入1个NX-EIC202以太网耦合模块设置耦合器的端口号。
设置要连接设备的IP地址选择与耦合器的通讯接口为Ethernet I/F。
连接耦合器8、选择与耦合器相连的设备(本地电脑的IP)9、下载程序到耦合器至此欧姆龙plc的IP地址和端口号配置完成。
3、欧姆龙Sysmac Studio中配置硬件组态和曝光变量首先组态欧姆龙PLC的硬件。
设置平安模块的输入输出形式,并添加通道解释。
建立全局变量,包含硬件通道的变量和需要使用的中间变量。
在I/O映射中将硬件通道和全局变量进行对应。
在曝光变量中建立要和西门子plc进行交互的信号点。
至此欧姆龙PLC的全部设定就完成了。
二、西门子PLC的配置1、在设备视图中建立2个TCP联接。
2、欧姆龙PLC和西门子PLC的通讯格式(1)西门子写入到欧姆龙PLC:西门子发送字节如下:01 10 00 00 0E 00 00 10 04 00 94 00 03 00 00 00 00 00 00 00所建立的曝光输入变量的长度(橙色字体)+前8个字节的固定长度,要与设定的变量长度(红色字体)大小全都,0E表示8+6=14(E),其中8为发送字节前的固定长度,6为发送数据的长度(橙色部分)。
建立的输入变量长度看I/O安排,如下图所示。
(2)西门子从欧姆龙读取数据当平安PLC组成为NX-EIC202耦合+SL3300+SID800*4+SOD400*2发送:011000000800000E040064000300接收欧姆龙PLC曝光变量:接收:01 10 28 00 00 8e 00 00 00 80 0f 00 01 00 00 00 00 00 00 00 00 00 00 00 00 07 ff 00 00 07 ff 00 00 07 ff 00 00 07 ff 00 70 0f 70 0f其中,灰色为固定返回格式,无意义,红色部分为CPU中的曝光变量的输出部分,橙色为4个输入模块的输入通道状态部分,其中1个模块的格式为00 07 ff 00,绿色部分为2片输出模块的输出通道状态,其中1个模块的格式为70 0f。
欧姆龙plc网络与通讯1、引言近年来,plc的网络应用日益广泛,组成更高级的集散控制系统甚至整个工厂的自动化,已成为工业现代化的趋势,实现远程连接和通信成为了PLC的基本性能之一。
而PLC网络结构复杂,技术难度大,投资较高,给用户在开发应用造成了一定的困难。
OMRON公司的PLC较早投入我国市场,在我国工控领域应用较为广泛,掌握其PLC的网络技术和通信方法,对进一步推广PLC的应用,提高工厂自动化水平具有较大的现实意义。
2、OMRONPLC网络欧姆龙plc的网络分为三层:Ethernet网、ControllerLink 控制器网、CompoBUS/D与CompoBUS/S元器件网,其三层网络控制平台如图1所示。
图1OMRONPLC三层网络2.1Ethernet网Ethernet网络即所说的以太网,它是工厂自动化领域用于信息管理层上的网络,它的通信速率高,可达100Mbps,以太网模块使PLC可以作为工厂局域网的一个节点,网络上的任何一台计算机都可以实现对它的控制。
在OMRON的PLC中,中型机以上的PLC才能上以太网,通常有三种机型,CS1系列、CV系列、和C200H系列。
在CS1系列和CV系列上分别直接装Ethernet单元CS1W-ETN01/11、CV500-ETN01,而在C200Hα上除了必须安装PC卡单元(C200HW-PCS01)外,还必须配置通信板(C200HW-COM01/04),并用总线单元将PC卡单元与通信板连接起来。
OMRONPLC的Ethernet网具有以下功能:远程编程和监控:在连接到Ethernet网络的计算机上运行CX-Programmer可以对所有连接的Ethernet网络上的PLC进行编程和监控。
FINS信息服务:在PLC之间和PLC与计算机之间发送FINS信息,使用EthernetFinsGateway能够不必编写FINS指令程序而直接管理信息。
Socket服务:由Windows提供一组函数,允许用户程序直接调用及使用TCP和UDP协议,在Ethernet网上进行数据传输。
CP1W-CIF41欧姆龙以太网通信-FINS——陆一:连接设置节点号要正确要不CP1W-CIF41的ERROR灯闪(如·CP1W-CIF41 IP为192.168.250.1,节点号即为1,与最后一段相同)。
使用插槽1时4开关要置ON,使用插槽2时5开关要置ON,否则ERROR灯常亮。
PLC的串行选件端口插以太网模块时设置要改成115200 7,2,E HOST LINK若是不知道模块的IP,可以从PLC内存查看:新建一个USB连接PLC的工程——在线工作——查看存IP地址的数据寄存器例如放在选件板2的位置,则IP地址在D32300+155=D32455,D32456两个地址查看;注意地址D后面不要带M。
(右键点击空白栏,编辑即可输入并查看)连接方法1:知道模块IP后。
设置电脑IP与模块处于同一个网段即可。
FINS节点号即为模块IP的最后一个。
TIPS:最好将无线网卡禁用连接方法2:登陆http://192.168.250.1/c00.htm 注意:有时候模块要与电脑处于同一个网段才能连上(如模块192.168.250.1,电脑要为192.168.250.2)密码:ETHERNET修改完成以后点击传送,然后点击重启即可。
二:FINS指令:学习利用网络调试助手发送FINS命令对PLC进行操作,首先要学习FINS的通讯格式;1、FINS指令格式手册中的格式如下:举例说明:利用FINS/TCP 的方式读取PLC 的DM1通道的数据,格式解析如下: ICF RS V GCT DNA DA1 DA2 S N A S A 1 SA2 SID CommandcodeTEXT固定 00固定 02目标网络号目标节点号目标单元号源网络号 源节点号 源单元号服务号,随便MR C SRC80 00 02 00 01 00 00C700 00 0101 820000000001MR 、SR 参见FINS 命令第5章;前面的ICF 、RSV 等为指定一些目标地址和源地址的网络号、节点号、单元号及其他固定的格式,后面关于Command code 以及TEXT 的内容,需要根据上位机实现什么的操作,填写不同的操作数据,就读取DM1通道的数据;DM 区的Memory area code 为82;读取存储区的Command code 为0101;返回时为C0写07也可,但返回也是0200表示本地网络,否则需创建路由表 00表示本地网络,否则需创建路由表下面利用网络调试助手进行测试:2、使用网络调试助手测试FINS/TCP利用上位发送FINS/TCP的格式如下:ETN21手册,编号W421,P203。
CP1W-CIF41欧姆龙以太网通信-FINS之袁州冬雪创作——陆一:毗连设置节点号要正确要不CP1W-CIF41的ERROR灯闪(如·CP1W-CIF41 IP为192.168.250.1,节点号即为1,与最后一段相同).使用插槽1时4开关要置ON,使用插槽2时5开关要置ON,否则ERROR灯常亮.PLC的串行选件端口插以太网模块时设置要改成1152007,2,E HOST LINK若是不知道模块的IP,可以从PLC内存检查:新建一个USB毗连PLC的工程——在线工作——检查存IP 地址的数据寄存器例如放在选件板2的位置,则IP地址在D32300+155=D32455,D32456两个地址检查;注意地址D后面不要带M.(右键点击空缺栏,编辑即可输入并检查)毗连方法1:知道模块IP后.设置电脑IP与模块处于同一个网段即可.FINS节点号即为模块IP的最后一个.TIPS:最好将无线网卡禁用毗连方法2:登陆/c00.htm 注意:有时候模块要与电脑处于同一个网段才干连上(如模块192.168.250.1,电脑要为192.168.250.2)暗码:ETHERNET修改完成以后点击传送,然后点击重启即可.二:FINS指令:学习操纵网络调试助手发送FINS饬令对PLC停止操纵,首先要学习FINS的通讯格式;1、FINS指令格式手册中的格式如下:举例说明:操纵FINS/TCP的方式读取PLC的DM1通道的数据,格式解析如下:FINS帧格式:前面的ICF、RSV等为指定一些方针地址和源地址的网络号、节点号、单元号及其他固定的格式,后面关于Command code以及TEXT的内容,需要根据上位机实现什么的操纵,填写分歧的操纵数据,就读取DM1通道的数据;DM区的Memory area code为82;读取存储区的Command code为0101;下面操纵网络调试助手停止测试:2、使用网络调试助手测试FINS/TCP操纵上位发送FINS/TCP的格式如下:ETN21手册,编号W421,P203.1)FINS节点地址数据发送(客户端->服务器)饬令发送:4649 4E53 0000 000C 0000 0000 0000 0000 0000 00C7(本机IP地址末位为199).反馈:46 49 4E 53 00 00 00 10 00 00 00 01 00 00 0000 00 00 00 C7 00 00 00 01 ;发送及返回截图如下:2)切换到编程状态发送:46494E53 00000014 00000002 00000000 8000 0200 0100 00C7 00FF 0402FINS 长度饬令错误码 FINS帧反馈:46494E53 00000016 00000002 00000000 C00002 00C700 000100 FF 0402 00003)切换到监视状态发送:46494E53 00000014 00000002 00000000 800002000100 00C700FF 0401反馈:46494E53 00000016 00000002 00000000 C00002 00C700 000100 FF 0401 00004)读DM0开端的2个通道:发送:46494E53 0000001A 00000002 00000000 800002000100 00C7返回:46494E53 0000001A 0000000200000000C0000200C700 000100 FF 0101 0000 C00045415)将0.0置ON:发送:46494E53 0000001B 00000002 00000000 800002000100 00C700FF 0102 30000000 0001 01(注:写位时,要将某位置ON,必须将写入内容的最末1位为1,其它位不限.)返回:46494E53 00000016 00000002 00000000 C0000200C700 000100 FF 0102 0000同时观察NJ501,对应的变量(CIO_00)变成ON.6)读100.0:发送:46494E53 0000001A 00000002 00000000 80000200010000C700FF 0101 30006400 0001返回:46494E53 00000017 00000002 00000000 C0000200C700 000100 FF 0101 000001同时观察NJ501,对应的变量(CIO_10000)确实是ON.3、使用网络调试助手测试FINS/UDP通讯经测试,采取FINS/UDP方式时,直接发送FINS饬令帧便可以停止通讯.。
欧姆龙EntherNetIP(CIP报⽂格式)Enthip/IP_ CIP报⽂格式测试Demo在⽂章末尾注册请求帧:0x65 0x00 注册请求命令 2byte0x04,0x00 header长度2byte < 封装头>0x00,0x00,0x00,0x00 会话句柄 4byte()0x00,0x00,0x00,0x00 状态默认0 4byte0x00, 0x00, 0x00,0x00,0x00,0x00,0x00,0x00 发送⽅描述默认0 8byte0x00,0x00,0x00,0x00选项默认0 4byte0x01,0x00 协议版本0x00,0x00 选项标记注册请求帧发送实例:65 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00注册应答帧: 0x65,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 0x01,0x00,协议版本 2byte 0x00,0x00,选项标记 2byte注册请求帧接收实例:65 00 04 00 71 01 0E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00(提取会话句柄或者会话ID 71 01 0E 00)状态字段************读取信息报⽂帧 EtherNet/ip *************************PLC标签:TAG1读取报⽂:6F 00 28 00 70 01 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 18 00 52 02 20 06 24 01 0A F0 0A 00 4C 03 91 04 54 41 47 31 01 00 01 00 01 00下⾯是解析:6F 00 命令码28 00 后⾯报⽂长度指:( 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 18 00 52 02 20 06 24 01 0A F0 0A 00 4C 03 91 04 54 41 47 31 01)70 01 27 00 会话句柄00 00 00 00 状态,初始值 0 状态好00 00 00 00 00 00 00 00 发送⽅描述00 00 00 00 选项默认以上是封装头Header(6F 00 28 00 70 01 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00)以下是特别命令数据:00 00 00 00:接⼝句柄 00 00 00 00 代表CIP01 00 超时02 00项数00 00 空地址项00 00 空地址项长度B2 00 未连接项默认18 00 CIP报⽂包的长度(52 02 20 06 24 01 0A F0 0A 00 4C 03 91 04 54 41 47 31 01 00 01 00 01 00)52命令02请求路径长度20 06 24 01默认请求路径0A F0 0A 00默认超时4C服务标识03 CIP长度多少字(91 04 54 41 47 31)91固定04PLC标签长度多少个字节01 00读取长度01 00 01 00 槽号返回报⽂帧解析6F 00 18 00 71 01 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 封装头00 00 00 00 01 00 02 00 00 00 00 00 B2 00 08 00 CC 00 00 00 C1 00 00 00 特定命令数据18 00 长度(总长度 -封装头长度)71 01 14 00 会话句柄(会话ID)00 00 00 00 会话状态00 00 00 00 00 00 00 00 发送⽅描述固定00 00 00 00 选项默认命令特定数据00 00 00 00 接⼝句柄,00000000 指CIP01 00 超时02 00 项数默认200 00 连接的地址项00 00 连接地址项长度B2 00 未连接数据项08 00 连接长度CC 服务标识00 填充字节00 00 状态C1 00 数据类型 BOOL (0x00C3(195) 为整型,0x00CA(202)为实型, 0x00C1(193)为布尔型,long 型为0x00C4,BYTE为0x00C2 )00 00 数据值⽹络调试助⼿发送数据历史记录[2019-12-03 15:33:31.560]# SEND HEX> 注册会话 PC=>PLC65 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00[2019-12-03 15:33:31.564]# RECV HEX> 返回会话句柄 PLC=>PC65 00 04 00 70 01 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00[2019-12-03 15:34:08.745]# SEND HEX> PC=>PLC读取6F 00 28 00 70 01 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 18 00 52 02 20 06 24 01 0A F0 0A 00 4C 03 91 04 54 41 47 31 01 00 01 00 01 00[2019-12-03 15:34:08.751]# RECV HEX> plc=>PC返回6F 00 18 00 70 01 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 08 00 CC 00 00 00 C1 00 00 00注释:C1 00 _BOOL 00 00_数据,true的情况下=01 00写单个标签在写单个标签之前,需要注册会话,获取会话句柄,之后进⾏写⼊命令下⾯是写⼊单标签完整报⽂帧:6f 00 2c 00 71 01 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 b2 00 1c 00 52 02 20 06 24 01 0a f0 0e 00 4d 03 91 04 54 41 47 31 c1 00 01 00 00 00 01 00 01 00解析:=>Header封装头:6f 00 2c 00 71 01 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00命令特定数据:00 00 00 00 01 00 02 00 00 00 00 00 b2 00 1c 00 52 02 20 06 24 01 0a f0 0e 00 4d 03 91 04 54 41 47 31 c1 00 01 00 00 00 01 00 01 006F 00 :命令码2C 00 :长度(去除header后报⽂长度字节为单位)71 01 14 00 :会话句柄00 00 00 00 :会话状态00 00 00 00 00 00 00 00 :发送⽅描述固定00 00 00 00 :选项默认00 00 00 00 :接⼝句柄 ( 00 00 00 00 指CIP)01 00 :超时02 00 项数默认200 00 空地址项默认00 00 空地址项长度默认B2 00 未连接数据项默认1C 00:数据长度指后⾯数据长度(字节)52 请求服务代码02 请求路径长度20 06 24 01 请求路径默认0A F0 超时默认 245760msOE 00:长度(从服务标识开始到写⼊的值结束)4D :服务标识03 :长度(91 04 54 41 47 31 )91:固定04:标签长度54 41 47 31 :TAG1(标签名)C1 00:数据类型 bool0x00C3(195) 为整型,0x00CA(202)为实型,0x00C1(193)为布尔型,long 型为0x00C4,BYTE为0x00C201 00:写⼊数量00 00 :写⼊的值 false:0 TRUE:任意⾮0数01 00 01 00 PLC槽号返回报⽂:6f 00 14 00 71 01 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 01 00 02 00 00 00 00 00 b2 00 04 00 cd 00 00 00解析:71 01 14 00:会话句柄B2 00:未连接数据项默认CD:服务标识(写)固定00:填充字节0000:状态、成功单标签写⼊,调试软件调试记录:[2019-12-03 17:08:09.346]# SEND HEX> 注册会话65 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00[2019-12-03 17:08:09.353]# RECV HEX> 返回会话句柄65 00 04 00 70 01 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00[2019-12-03 17:08:42.352]# SEND HEX> 标签TAG1 写⼊06F 00 2C 00 70 01 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 1C 00 52 02 20 06 24 01 0A F0 0E 00 4D 03 91 04 54 41 47 31 C1 00 01 00 00 00 01 00 01 00[2019-12-03 17:08:42.357]# RECV HEX> 写0结果返回6F 00 14 00 70 01 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 04 00 CD 00 00 00[2019-12-03 17:08:55.840]# SEND HEX> 写16F 00 2C 00 70 01 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 1C 00 52 02 20 06 24 01 0A F0 0E 00 4D 03 91 04 54 41 47 31 C1 00 01 00 FF FF 01 00 01 00[2019-12-03 17:08:55.845]# RECV HEX> 写1结果6F 00 14 00 70 01 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 04 00 CD 00 00 00[2019-12-03 17:09:11.630]# SEND HEX>写16F 00 2C 00 70 01 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 1C 00 52 02 20 06 24 01 0A F0 0E 00 4D 03 91 04 54 41 47 31 C1 00 01 00 01 00 01 00 01 00[2019-12-03 17:09:11.639]# RECV HEX> 写1结果6F 00 14 00 70 01 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 04 00 CD 00 00 00多标签读取参考单标签的报⽂帧读取TAG1 和TAG254 41 47 31 TAG154 41 47 32 TAG2[2019-12-03 17:55:55.741]# SEND HEX>6F 00 3E 00 70 01 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 2E 00 52 02 20 06 24 01 0A F0 20 00 0A 02 20 02 24 01 02 00 06 00 10 00 4C 03 91 04 54 41 47 31 01 00 4C 03 91 04 54 41 47 32 01 00 01 00 01 00 [2019-12-03 17:55:55.847]# RECV HEX>6F 00 2A 00 70 01 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 00 00 00 00 B2 00 1A 00 8A 00 00 00 02 00 06 00 0E 00 CC 00 00 00 C1 00 01 00 CC 00 00 00 C1 00 01 00注销会话注销会话报⽂是没有返回值的[2019-12-05 12:27:18.253]# SEND HEX> 注册会话65 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00[2019-12-05 12:27:18.256]# RECV HEX> 返回会话句柄65 00 04 00 71 01 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00[2019-12-05 12:27:42.889]# SEND HEX> 注销会话66 00 00 00 71 01 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0066 00 :命令00 00 :长度71 01 04 00:要注销的会话句柄00 00 00 00 状态默认000 00 00 00 00 00 00 00:发送内容默认000 00 00 00:选项默认0⽔平有限,有错误之处,多多包涵,意见或建议,请留⾔!测试Demo。
OMRON_CP1H串口无协议通讯用OMRON CP1H PLC CPU本体扩展槽串口选件板作无协议串口通讯发送数据一、本例使用串口1作为发送数据介质,只写发送示例,接收同理,首先设置串口1通讯参数,串口扩展板扩展板插在slot 1,设置参数如下:通讯参数:波特率9600,数据位8,停止位1,校验位无,RS232C模式,通讯延迟1秒,其余默认。
二、电脑串口与PLC串口的连接方式,PLC采用USB转串口电缆,接线图如下:注意:不能直接将PC串口线插到CPU串口上,由上图可以看出,双方针脚定义不同。
三、发送数据的程序编程,程序图如下:运用发送指令:TXD(防止每个扫描周期重复发送,应采用上升沿执行@),A392.13是串口1的准备标志,为ON说明设置正确,当前无发送,可以执行发送任务,当W0.00为ON时,根据接点P_1s每1秒发送一次。
TXD指令说明:D100是要发送数据的首字,由上图可知我设值为100,十六进制为#0064,第二数是控制字,为#0101,表明使用串口1发送,低字节在前高字节在后,具体控制字参看下图:由于设置设置的是无RS,ER信号控制,所以此处4-7位设为0,0-3位设为1表明低字节先发送,8-11位设为1说明使用串口1 。
第三个操作数为发送字节个数,这里是2,即发送1个字节,也就是D100低8位和高8位,低8位先发送,高8位后发送。
四、PC机串口通讯软件接收到的数据如下图所示:本人PC机串口号为COM8,通讯参数设置与PLC串口设置对应,即9600,8位,无校验,1位停止位,由于PLC每秒发送2个字节,所以此处接收到的数据为64 00,也就是100的十六进制就,即我们在PLC的D100中设置的值100,十六进制0064,为什么接收的64在前,00在后,因为我们在发送时设置低字节先发送,也就是64先发,00后送,所以PC先收到64再收到00 。
网络指令
网络指令send / recv
C: 控制首字
例:
以山西宏光项目水网发送指令为例,在补给水系统中多介质过滤器顺控系统中涉及到综合水泵房的化学反洗泵,在锅炉补给水系统中选用SEND和RECV指
令同时工作实现发送和接受,完成同步通讯。
前提条件,补给水系统和综合水泵房系统PLC的以太网冗余完全配好:
CPU
实际现场综合水泵房的节点是003.
3.现在将补给水系统D2150的数据发送至综合水泵房的D2126中
D2120为首个控制字,默认其后连续四个字同时被占用,用MOV指令,为其赋值。
C (D2120) :#0001 表示此次要传输的字数为1,仅需传输D2150一个字;C+1 (D2121):#0000 后面两个00表示本地网络(网络1或者网络2)传输,前面两个00 为串行端口号选择,不选用,采用默认值;
C+2 (D2122) :#0300 03表示网络节点号,综合水泵房节点号为3, 00 为CPU 单元号,网络中就一个CPU,单元号为00,(默认CPU单元号一
般为零);
C+3/4 : 不写,采用默认值,但是字已占用,不能再使用赋值。
以下为程序赋值图例:。
OMRON可编程控制器与计算机的通信
刘一凡
【期刊名称】《机床与液压》
【年(卷),期】2003(000)004
【摘要】本文介绍了OMRON可编程控制的通信协议,说明如何用该协议实现OMRON可编程控制器与计算机间的通信.介绍了基于VB6.0和RS232串行通信的PLC和计算机之间通信的部分程序.
【总页数】3页(P256-258)
【作者】刘一凡
【作者单位】肇庆学院电子信息工程系,广东,肇庆,526061
【正文语种】中文
【中图分类】TN91
【相关文献】
1.OMRON可编程控制器网络通信的设计和实现 [J], 昌玉林;华桦;刘煜
2.OMRON可编程控制器与计算机串行通信的探讨 [J], 朱晓萍
3.OMRON可编程控制器与变频器的通信设计 [J], 赵双义;刘成竹;连英;任建科
4.OMRON可编程控制器与计算机串行通讯的实现 [J], 王志松
5.用中断方式实现计算机与OMRON可编程控制器的通信 [J], 郑伟峰;林显忠因版权原因,仅展示原文概要,查看原文内容请购买。
CJ2M-EIP21的配置说明
启动以太网的data link 的配置软件
软件路径:开始菜单------->Programs------->Omron-------->Network Configurator for EtherNetIP 第一步:新建一个网络,添加两个CJ2M-EIP21(这个是集成在CJ2M-CPU3*上的)
右键单击,可以修改模块的IP地址
双击开打配置窗口
然后分别选中Tag Sets(标签),然后分别建立输入输出变量
建立完成之后,再次双击其中一个PLC,选中Connections,然后点击向下箭头,
然后双击下面对话框的列表,打开链接配置表
选中对应的标签即可,每个站点只能编辑其输入标签
然后点击注册
两个PLC都完成之后就可以在线对每个PLC进行下载。
关于OMRON CIP通信的编程CLASS通信编程总结注:1、本手册不适用于标准APP的开发,只能作为编程方法使用参考。
2、本手册面向有需求的编程爱好者。
3、本手册主要讲解C#的编程方法。
4、查看本手册时,默认使用者有一定的C#开发经验,基础不进行讲解。
Yanhobey制作老婆给的零花钱得存着…目录目录......................................................................................................................................................... - 1 -图表目录................................................................................................................................................ - 4 -前言......................................................................................................................................................... - 5 -编程注意事项....................................................................................................................................... - 6 -第一部分、SYSMAC Gateway介绍.............................................................................................. - 7 -1、SYSMAC Gateway五大功能:............................................................................. - 7 -1.1 Message通信(显式*)功能 ..................................................................................... - 7 -1.2 周期通信(隐式*)功能................................................................................................. - 7 -1.3标签............................................................................................................................... - 7 -1.4应用程序开发 ............................................................................................................ - 7 -1.5与FINS通信共存...................................................................................................... - 7 -2、SYSMAC Gateway相关信息................................................................................. - 8 -2.1Sysmac Gateway产品配置图............................................................................... - 8 -2.2Sysmac Gateway Console主面板介绍.............................................................. - 9 -3、Sysmac Gateway使用手册链接....................................................................................... - 9 -3.1、安装Sysmac Gateway后的路径................................................................................ - 9 -3.2、本手册路径........................................................................................................................ - 9 -3.3、CX-Compolet手册......................................................................................................... - 9 -第二部分、动态链接库介绍......................................................................................................... - 10 -1、Sysmac Gateway安装目录.............................................................................................. - 10 -2、CX-Compolet安装目录 ................................................................................................... - 10 -3、动态链接库目录...................................................................................................... - 10 -4、示例程序目录 .......................................................................................................... - 10 -4.1所有sample程序,用户可按照需求打开:........................................................... - 10 -4.2常用CIP通信目录,目录中包含所有CIP通信程序示例:.................... - 10 -4.3 Class3(CIPCompolet)通信示例路径.................................................................. - 10 -4.4 Class1(VariableCompolet)通信示例路径 ................................................. - 10 -4.5CIPCore服务打开示例路径................................................................................ - 10 -4.6EIP PORT口打开示例路径 .................................................................................. - 11 -第三部分、CIPCore服务启动编程............................................................................................. - 12 -1、SysmacGatewayCompolet.dll库文件 .............................................................. - 12 -2、SysmacGatewayCompolet完整使用方法Sample程序和手册............... - 12 -2.1Sample程序参考.................................................................................................... - 12 -2.2使用手册 ................................................................................................................... - 12 -3、编程方法讲解 .......................................................................................................... - 13 -3.1引用动态链接库...................................................................................................... - 13 -3.2命名空间 ................................................................................................................... - 13 -3.3实例化变量............................................................................................................... - 13 -3.4使用方法介绍 .......................................................................................................... - 13 -3.5代码解释 ................................................................................................................... - 14 -第四部分、Port口启动和停止编程........................................................................................... - 15 -1、CIPPortCompolet.dll库文件............................................................................... - 15 -2、CIPPortCompolet完整使用方法程序和手册................................................ - 15 -2.1Sample程序............................................................................................................. - 15 -2.2使用手册 ................................................................................................................... - 15 -3、编程方法讲解 .......................................................................................................... - 16 -3.1引用动态链接库...................................................................................................... - 16 -3.2命名空间 ................................................................................................................... - 16 -3.3实例化变量............................................................................................................... - 16 -3.4使用方法介绍 .......................................................................................................... - 16 -3.5代码解释 ................................................................................................................... - 16 -第五部分、CLASS3通信编程(CIPCompolet).................................................................... - 17 -1、CIPCompolet.DLL库文件..................................................................................... - 17 -2、CIPCompolet完整使用方法程序和手册 ........................................................ - 17 -2.1 Sample程序.................................................................................................................... - 17 -2.2 使用手册.......................................................................................................................... - 17 -3、编程方法讲解 .......................................................................................................... - 18 -3.1 引用动态链接库............................................................................................................... - 18 -3.2 命名空间 ............................................................................................................................ - 18 -3.3 实例化变量........................................................................................................................ - 18 -3.4 使用方法介绍................................................................................................................... - 18 -第六部分、CLASS1编程(VariableCompolet)................................................................... - 19 -1、网络架构 ................................................................................................................... - 19 -2、VariableCompolet.DLL库文件........................................................................... - 19 -2.1 Sample程序....................................................................................................................... - 19 -2.2 使用手册 ............................................................................................................................ - 19 -3、编程方法讲解 .......................................................................................................... - 20 -3.1 引用动态链接库............................................................................................................... - 20 -3.2 命名空间 ............................................................................................................................ - 20 -3.3 实例化变量........................................................................................................................ - 20 -3.4 使用方法介绍................................................................................................................... - 20 -结论....................................................................................................................................................... - 21 -图表目录图1 Class1和Class3架构图 .......................................................................................................... - 5 -错误线程编辑图.................................................................................................................................. - 6 -正确线程编辑图.................................................................................................................................. - 6 -图3 SGW操作面板图....................................................................................................................... - 9 -图4 Sysmac Gateway Service使用方法手册图...................................................................... - 12 -图5程序引用图............................................................................................................................... - 13 -图6 PortCompolet操作手册........................................................................................................ - 15 -图7 CIPCompolet操作手册......................................................................................................... - 17 -图8 VariableCompolet通信示意图........................................................................................... - 19 -图9 VariableCompolet操作手册................................................................................................ - 20 -前言此文档的所有内容都是基于PC上安装了OMRON SYSMAC Gateway的前提下进行的描述。