s7.net 写数据到plc_机器视觉软件开发系列——松下PLC下位机通信协议简介和实现...
前些章节我们理解和实现了三菱PLC的MC协议以及实现,接下来我们看看松下PLC的协议以及实现,在我的文章系列中,我会把常用的PLC的协议以及实现都讲解一次,以供大家在使用的过程中减小重复工作,也供大家参考,在我机器视觉与下位机通信程序中,我只实现了寄存器的读写操作,因为在我的应用中只会跟寄存器进行交互,只实现他,如果要实现其他的,你可根据寄存器的模式,再根据协议实现即可。
松下PLC协议叫 NEWTOCOL 协议
NEWTOCOL
如上图,PC发送Command命令,PLC收到后回复Response响应给到PC端,在这里Command就是协议,Response是PLC回复的协议内容。
协议格式
Header表示一帧消息发送开始
Destination 表示PLC的单元号从01开始,最大支持32。官方文档有说,如果写成FF表示全局传输,一次发送给所有单元。
Text 表示传输协议的具体内容,后面会讲解。
CheckCode 为校验的,可以写成**,这里使用BCC,BCC是使用水平奇偶校验执行错误检查的代码,以提高了发送数据的可靠性,计算方法是从Header到Text位置,异或得到。
BCC求取
Terminal 为结尾符,再开始和结尾符中间代表一帧数据。
下面我以寄存器的读写来说明具体的Text内容。读寄存器为RD 写寄存器为 WD
RD 读寄存器数据格式
读
CR表示结尾符,换行
其中数据类型有三种类型 D--数据寄存器 L--连接数据寄存器 F--文件寄存器,在我的demo程序中是D数据寄存器
正常回复
正常回复
回复数据中,我们要用的就是RD后面的数据到BCC数据之前的,一个寄存器就是一个字,也就是4个字节,如上图,记得高低位要交换
异常回复
异常回复
异常回复中有 ‘!’你可以通过是否有这个字符来确定是否异常。
WD 写寄存器数据格式
写寄存器
写数据类型有三种类型 D--数据寄存器 L--连接数据寄存器 F--文件寄存器。
回复正常
写入成回复
异常回复
写入失败回复
可以看返回值是否包含!来判断是否正常
上代码
//读寄存器private int ReadPanNWord(int nStarAddr, int nWordNum, ref string data) { if (null == Connect) throw new Exception("PLC连接对象位null"); int nRet = -1; string sendData = string.Format("%01#RDD{0:D5}{1:D5}**总结
以上是生活随笔为你收集整理的s7.net 写数据到plc_机器视觉软件开发系列——松下PLC下位机通信协议简介和实现...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python中深拷贝和浅拷贝_**Pyt
- 下一篇: HBase详细的安装和使用方法