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

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

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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和 CP/ IP技术传送CIP通信包,CIP作为开放的应⽤层,位于EtherNet和 CP/ 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返回的会话ID 3.读数据服务请求报⽂ 报⽂由三部分组成 Header 24个字节 、CommandSpecificData 16个字节、以及CIP消息 (由读取的标签⽣成) 实例,读取单个标签名为 AG1的报⽂总长度为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,0x0

文档评论(0)

淘博士 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档