首页 理论教育 S7-1200自由口通信技巧详解

S7-1200自由口通信技巧详解

时间:2023-06-24 理论教育 版权反馈
【摘要】:1.自由口通信简介S7-1200 PLC 通信扩展模块可实现串口通信,S7-1200 PLC 串口通信模块有三种型号,分别为CM1241 RS232 接口模块、CM1241 RS485 接口模块、CM1241 RS422/485 接口模块。

S7-1200自由口通信技巧详解

1.自由口通信简介

S7-1200 PLC 通信扩展模块可实现串口通信,S7-1200 PLC 串口通信模块有三种型号,分别为CM1241 RS232 接口模块、CM1241 RS485 接口模块、CM1241 RS422/485 接口模块。CM1241 RS232 接口模块支持基于字符的点到点(PtP)通信,如自由口协议和MODBUS RTU 主从协议。CM1241 RS485 接口模块支持基于字符的点到点(PtP)通信,如自由口协议、MODBUS RTU 主从协议及USS 协议。两种串口通信模块都必须安装在CPU 模式的左侧,且数量之和不能超过3 块,它们都由CPU 模块供电,无须外部供电。模块上都有一个DIAG (诊断)LED 灯,可根据此LED 灯的状态判断模块状态。模块上部盖板下有Tx (发送)和Rx (接收)两个LED 灯指示数据的收发。

2.自由口通信指令

S7-1200 的自由口通信指令也称为点到点通信指令,在右边的“通信”指令窗口的“通信处理器”文件夹下“点到点”文件夹中。这些指令分为用于组态的指令和用于通信的指令。

SEND_PTP 指令用于发送报文,RCV_PTP 指令用于接收报文,如图8-27所示。所有的PTP 指令的操作是异步的,用户程序可以使用轮询方式确认发送和接收的状态,这两条指令可以同时执行。通信模块发送和接收报文的缓冲区最大为1 024B。

图8-27 SEND_PTP 和RCV_PTP 指令

RCV RST 用于清除接收缓冲区,SGN_GET 用于读取通信信号的当前状态,SGN_SET 用于设置通信信号的状态。SGN_GET 发送指令的各个参数含义请参考S7-1200 PLC 的系统手册或软件里的帮助文件。

3.通信程序的轮询结构

通信程序必须周期性调用S7-1200 的点到点通信指令,检查接收的报文。下面是主站的典型轮询顺序:

(1)在SEND_PTP 指令的REQ 信号的上升沿,启动发送过程。

(2)继续执行SEND_PTP 指令,完成报文的发送。

(3)SEND_PTP 的输出位DONE 为“1”时,指示发送完成,用户程序可以准备接收从站返回的响应报文。

(4)反复执行RCV_PTP,模块接收到响应报文后,RCV_PTP 指令的输出位NDR 为“1”,指示已接收到新数据。(www.xing528.com)

(5)用户程序处理响应报文。

(6)返回第1 步,重复上述循环。

从站的典型轮询顺序:

(1)在OB1 中调用RCV_PTP 指令。

(2)模块接收到请求报文后,RCV_PTP 指令的输出位DONE 为“1”,指示新数据准备就绪。

(3)用户程序处理请求报文,并生成响应报文。

(4)用SEND_PTP 指令将响应报文发送给主站。

(5)反复执行SEND_PTP,确保发送完成。

(6)返回第1 步,重复上述循环。

从站的等待响应期间,必须尽量频繁地调用RCV_PTP 指令,以便能够在主站超时之前接到来自主站的发送。可以在循环中断OB 中调用RCV_PTP 指令,但是循环时间间隔不能太长,应保证在主站的超时时间内执行两次RCV_PTP 指令。

两台PLC 之间的自由口通信的操作步骤请参考相关说明书或西门子官网的技术文档。

练习

1.PLC_1 的MB10 的初始数据为16#0F,PLC_2 的MB20 的初始数据为16#F0,用TCP或ISO on TCP 协议的以太网通信把PLC_1 的MB10 和PLC_2 的MB20 里的数据互换。

2.用Profinet IO 通信方式实现两台电机的异地启停控制,具体要求同任务8.1。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈