S7-1200,串行通信.doc

S7-1200 串行通信 S7-1200支持的串行通讯方式 点对点(PtP)通信 Modbus 主从通信 USS 通信 名称 CM 1241 RS232 CM 1241 RS485 订货号 6ES7 241-1AH30-0XB0 6ES7 241-1CH30-0XB0 通讯口类型 RS232 RS485 波特率bps 300; 600;1.2 kb; 2.4 kb; 4.8 kb; 9.6 kb;19.2 kb; 28.4 kb; 57.6 kb; 76.8 kb; 115.2 kb; 校验方式 None无校验 Even偶校验 Odd奇校验 Mark校验位始终置为1 Space校验位始终为0 流控 硬件流控;
软件流控 不支持 接收缓冲区 1KB 通讯距离屏蔽电缆 10m 1000m 电源规范5V DC 220mA S7-1200 RS232 和 RS485 通信模块的特征 图1. 串口通信模块 1. 由 CPU 供电,不必连接外部电源 2. 端口经过隔离,最长距离1000 米 3. 有诊断 LED 及显示传送和接收活动 LED 4. 支持点对点协议 5. 通过扩展指令和库功能进行组态和编程 RS485 与 RS232 通信模块的LED 诊断 LED 灯 红闪如果 CPU 未正确识别到通信模块,诊断 LED 会一直红色闪烁 绿闪CPU 上电后已经识别到通信模块,但是通信模块还没有配置 绿灯CPU 已经识别到通信模块,且配置也已经下载到了CPU 发送 LED 灯 代表数据正在通过通信口传送出去 接收 LED 灯 代表数据正在通过通信口接收进来 注意安装于CPU本体上的通信板只有发送和接收 LED 灯,而没有诊断 LED 灯 RS485及RS232两种模板支持的协议 ASCII USS Modbus RTU Master protocol Modbus RTU Slave protocol ASCII 协议的特点 报文可以由用户自己定义,便于用户以 ASCII 协议为基础开发 使用简单,可以很好地实现与第三方系统的通讯 可以进行识别报文结束设置 可以进行数据流量控制 缺点具有简单的校验功能(奇偶校验),低数据安全性;
数据传输无确认信息

通讯需要双方协调 S7-1200 的 PTP 校验 串口的校验奇偶校验用于检验数据传递的正确性,是最简单的检错方法。

图2. 校验设置 偶校验如果每字节的数据位中“1”的个数为奇数,则校验位为1,如果个数为偶数,则校验位为“0”, 保证数据位和校验位中“1”的个数是偶数 奇校验如果每字节的数据位中“1”的个数为奇数,则校验位为0,如果个数为偶数,则校验位为“1”, 保证数据位和校验位中“1”的个数是奇数 传号校验奇偶校验位始终设置为 1 空号校验奇偶校验位始终设置为 0 注意奇偶校验可以简单的判断数据的正确性,从原理上可看出当一位出错,可以准确判断,当两位或更多位误码就校验不出,但由于其实现简单,仍得到了广泛使用。

PTP 通信的发送信息配置 定义在信息起始发送断点及空闲线 字符中断当接收到的数据保持为零值的时间大于完整的字符传输时间时,代表字符中断。一个完整字符传输时间定义为传输起始位、数据位、校验位和停止位的时间总和。

图3. 定义在信息起始发送断点及空闲线 常问问题为什么发送配置中只配了2位字符中断,而通信伙伴却可以正常接收数据 答发送配置中设置的字符中断小于等于16位时,系统自动发出16位的字符中断位;
设置大于16位时,则发出的中断位与实际设置相符。下图是设置的发送断点及空闲线位及其实际发出的波形图。

波形图 断点及空闲线设置 图4. 断点及空闲线波形图 PTP 通信接收起始条件 以任意字符开始 以特殊条件开始 通过断点识别消息开始 通过空闲线识别消息开始 通过单个字符识别消息开始 通过字符序列识别消息开始 图5. 通信接收起始条件 通过字符序列识别消息开始 对于多个起始序列的组态,只要出现其中一个序列,即会满足开始条件。下图右侧即为满足起始条件的字符串。

图6. 通过字符序列识别消息开始 如果选择了多个起始条件,则检查开始条件的顺序如下 注意检查多个开始条件时,如果有一个条件没有满足,则 CM 将从第一个所需的条件开始重新启动检查。

PTP 通信接收结束条件 图7.结束条件设置 注意与多个起始条件的判断不同,检查多个结束条件时,任何一个条件满足,信息接收结束。

消息超时结束条件 消息超时时间从接到符合消息开始条件的第一个字符时开始计算,如下图。

图8.消息超时 响应超时结束条件 响应超时时间从传送结束时开始计算,只要传送成功完成且模块开始接收操作,定时器就会启动。

图9.响应超时 注意响应超时结束条件不能作为单独的结束条件的设置,否则会在编译时报如下错误 图10.响应超时作为单独的结束条件报错 从消息中读取信息长度 图11.从消息中读取信息长度的设置 实际收到的数据长度 长度偏移前的字节数长度字节大小读取的实际数据长度不计入字节长度的字节数 图12.程序中读到的实际数据长度 PTP 通信接收缓存区 缓存区的数据保持 断电后缓存区中的数据全部丢失,不能保持。

通信模板缓存区超出20条信息 如果缓存区中的信息超过20条,后面的信息被 自动丢弃,且不报错。

通信模板缓存区多包数据超出1024字节 发送多个每包50个字节数据,当数据超过1024字节那包就被丢弃了,前面的可以正常接收,且没有任何报错.在前面数据被成功接收以后,只要缓存区有空间,后面的数据还可以正常收到。

通信模板缓存区一包数据超出1024字节 如果发送数据一包就大于1024字节时,缓冲区接收到数据到1024字节时,虽然没有收到结束字符,数据由缓存区送给CPU,但会报错1680E0,如下图。

图13. 发送数据一包大于1024字节时,缓存区报错 、 图14. 使用RST指令复位缓存区错误,恢复数据接收 注意缓存区可以存储多条信息,限制是20条信息或最多1024字节。

为什么不能使用 PC/PPI 电缆与S7-1200 RS485 模块进行串口调试 答因为 S7-1200 RS485 模块接口不提供24V电源,不能给 PC/PPI 电缆供电,所以电缆无法工作

解决办法可以将 S7-1200 RS485 与 S7-200 通信口网络连接,将 PC/PPI 电缆插在 S7-200 通信口上总线连接器的编程口上,对S7-1200 RS485进行串口调试。此时S7-200必须上电并打到停止状态。

连接 5 GND 逻辑地或通信地 金属壳 - 外壳接地