[西门子] 西门子1200自由格式通讯——P2P

[复制链接]
查看65109 | 回复0 | 2024-10-24 14:04:24 | 显示全部楼层 |阅读模式
西门子S7-1200系列PLC支持自由格式通讯,也称为自由口通讯或点对点(PtP)通讯。这种通讯方式允许用户自定义通讯协议,通常用于与不支持标准工业通讯协议的第三方设备进行数据交换。自由格式通讯可以使用串行接口(如RS485)或者以太网接口来实现。

在使用自由格式通讯时,你需要考虑以下几点:



    硬件配置:



      如果是通过串行接口进行自由格式通讯,需要使用支持自由口通讯的通信模块,比如CM 1241 RS485模块。

      如果是通过以太网接口,则直接利用CPU集成的PROFINET接口。

    软件编程:



      在TIA Portal软件中,你可以找到用于自由口通讯的功能块,例如TPSend和TPReceive等。

      你必须自己编写程序来处理发送和接收的数据流,包括创建适当的报文格式、处理定时器、触发条件以及错误检测等。

      对于接收到的数据,可能还需要编写额外的代码来解析报文,并将有用信息提取出来。

    通讯参数设置:



      设置波特率、数据位、停止位、校验位等通讯参数,确保它们与第三方设备相匹配。

      配置端口号,这取决于使用的物理接口类型。

    协议设计:



      自由格式通讯要求你自己定义一个协议,包括起始标志、命令字节、数据长度、实际数据、校验码等元素。

      保证你的协议能够可靠地传输数据,并且有机制去检测并纠正错误。

    测试与调试:



      使用串口调试工具或网络抓包工具来监控通讯过程,帮助调试协议和程序逻辑。

      确保通讯双方都正确实现了协议,可以通过发送已知的数据并检查响应来验证。



一、1200PLC配置

1.S7-1200有两套点对点通信指令,如图所示



上述两套指令集区别如下表



2.软件方面配置



选择添加485或者232模块,右键点击属性配置和第三方仪表相对应的参数,并查看此模块的硬件标识符。





3.具体程序

写指令

EN:使能
REQ:上升沿触发PORT:硬件表示符BUFFER:此参数指向发送缓冲区的存储区LENGTH:要传输的数据长度(字节)UNIVERSAL :在 CPU 和通过 PORT 指定的 CM 之间进行数据通信的类型DONE:完成位ERROR:报错位STATUS:错误码


读指令
PORT:硬件表示符

BUFFER:此参数指向发送缓冲区的存储区

UNIVERSAL :在 CPU 和通过 PORT 指定的 CM 之间进行数据通信的类型
NDR:如果新数据可用且指令无错完成,则为 TRUE 且保持一个周期LENGTH:接收到的帧的长度(以字节为单位) ERROR:报错位STATUS:错误码


4.读/写全局变量DB块写给从站的报文


读取从站报文返回格式



5.串口调试助手读取报文结构



二、实际测试视频

video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_3677831077143363590

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则