n
1. 概述
对于一些通讯速率和稳定性要求不高的场合,串行通讯仍有很广泛的应用。西门子标准的串行通讯的解决方案为CP340、CP341、CP440、CP441,但是如果现场CPU有集成的PTP接口,并且不需要使用一些加载协议(例如MODBUS),使用300C CPU的集成串口也可以进行ASCII,3964(R),RK512等协议的通讯。
以下仅以ASCII协议为例、使用485接口,介绍如何使用300C CPU的集成PTP口进行通讯。n
2. 软件环境
2.1. STEP7 V5.5
用于编写PLC程序,此软件需要从西门子购买,本文档中所有的程序代码均使用Step7 V5.5编写。n
2.2. 串口调试器
第三方的软件,可以从网站上下载。
只要是支持ASCII协议串口调试软件即可,没有特殊要求。n
3. 硬件列表
PS 307 | 6ES7 307-1EA00-0AA0 |
CPU 314-2PTP | 6ES7 314-6BF01-0AB0 |
MMC | 6ES7 953-8LG11-0AA0 |
PC适配器(USB) | 6ES7 972-0CB20-0XA0 |
232转485接头 |
表1 在该项目中使用的硬件n
4. 组态配置
4.1. 结构示意图n
图1 硬件结构图n
4.2. 硬件组态n
4.2.1 在Step7中建立1个新的S7-300站点n
图2 建立新的S7-300 statio
4.2.2 组态机架及CPUn
图3 选择机架,将314C-2PTP CPU插入对应槽位n
4.3. 设置PTP的接口参数n
4.3.1 选择协议并设置起始地址(其地址默认即可)n
图4 协议选择n
4.3.2 设置该PTP接口的波特率,数据位,停止位和奇偶校验位n
图5 设置参数n
4.3.3 选择信息结束的方式
1、 以固定的字符延迟时间作为每帧数据的结束方式;
2、 以固定的字符长度作为每帧数据的结束方式;
3、 以结束字符作为每帧数据的结束方式。n
图6 报文结束条件设置n
4.3.4 根据工艺要求设置接口类型
根据工艺可以选择RS422或RS485接口。n
图7 设置接口类型
5. 功能块的使用及管脚定义
5.1. SFB 60 "SEND_PTP" 数据发送功能块管脚定义
表2 SFB 60 "SEND_PTP"管脚定义
5.2. SFB 61 "RCV_PTP" 数据接收功能块管脚定义
表3 SFB 61 "RCV_PTP"管脚定义
注:
a) SFB60中的SD_1和SFB61中的RD_1的数据格式必须使用ANY格式(例:P#DB1.DBX0.0 BYTE 10),不能使用其它数据类型。
b) 数据发送功能块SFB60中LEN定义的数据长度要小于等于SD_1发送数据区的长度。
c) 上述功能块中的管脚DONE,NDR,STATUS,ERROR均为一个周期内有效,若想使用这些数据需要编程进行数据读取。
5.3. SFB 62 "RES_RCVB” 删除接收缓冲区功能块管脚定义
表4 SFB 62 "RES_RCVB"管脚定义
5.4. 编程举例
5.4.1 调用对应的通讯功能块
进入对应的程序块,在左侧指令树选择功能块,路径如下:
Libraries—>Standard Library—>System Function Blocks—>SFB60SFB61。
图8 通讯功能块的具体位置
5.4.2 示例程序及注意事项
5.5. 实验过程及传输结果
S7侧发送使能为脉冲信号,将发送使能M0.0置位,然后通过发送完成信号将M0.0复位,以便下次继续发送,S7将数据发送到对方的串口调试软件。
S7侧的接收使能为高电平信号,将接收使能M0.4置位,通过串口调试软件将数据发送到S7侧。
传输结果见下图:
图9 数据传输结果
5.6. 硬件接线
5.6.1 PTP接口的针脚定义
表5 PTP接口的针脚定义
5.6.2 485接口接线方式
图10 485接口接线方式
5.6.3 422接口接线方式
图11 422接口接线方式
6. 总结
由于ASCII协议使用的最为普遍,所以本文仅以ASCII协议为例,介绍了如何使用S7-300集成串行接口进行通讯。使用3964(R)和RK512协议进行通讯时和ASCII类似,细节参照《用于 S7300/400系统和标准功能的系统软件》中“用于紧凑型CPU的SFB”的相关章节。
关键词
300C-2 PTP, 串口通讯,ASCII
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc327731.html