欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

s7.net 写数据到plc_机器视觉软件开发系列——松下PLC下位机通信协议简介和实现...

发布时间:2025/3/15 编程问答 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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下位机通信协议简介和实现...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。