在完成通信端口、发送、接收参数设置后,需要在CPU中调用通信功能模块发送和接收数据,接下来以CM1241 RS 232C与PC集成软件“超级终端”的通信为例,介绍其串口通信模块的数据发送、接收。在此实例中,RS232端口的通信设置、发送参数和接收参数均使用系统默认设置。
1.PC侧超级终端的设置
1)建立连接。选择“开始”→“所有程序”→“附件”→“通信”→“超级终端”选项,打开“超级终端”软件(见图7-12)。首先在如图7-14所示的对话框中给连接分配一个名称“CM1241RS232TOPC”,单击“确定”按钮(在此过程中如果弹出设置拨号信息的对话框,单击“取消”按钮,如图7-13所示)。
2)选择连接接口。在弹出的对话框(如图7-15所示)中选择使用COM1口(选择与S7-1200通信模块连接的串口对应的编号,如图7-14所示),单击“确定”按钮。
3)组态接口参数。在弹出的对话框(如图7-16所示)中设置COM1参数与CM1241RS232模块一致,本例中使用默认设置即“9600,8,N,1,无校验”,单击“确定”按钮。
图7-12 启动方式
图7-13 位置信息设置
图7-14 超级终端新建连接
图7-15 选择连接接口
4)组态ASCII码参数。在如图7-17所示的对话框中选择“文件”→“属性”选项。在弹出的如图7-18所示的对话框中选择“设置”选项卡,再单击“ASCII码设置”按钮,在弹出的对话框中选择“本地回显键入的字符”框,单击“确定”按钮。
图7-16 组态接口参数设置
图7-17 选择“文件”→“属性”选项
2.S7-1200中的发送程序
打开CPU 1214C的Main[OB1]程序编辑界面,在窗口右侧选择“指令”→“扩展指令”→“通信”→“点对点”指令下的“SEND_PTP”如图7-19所示,将其拖入到程序段中并赋值。SEND_PTP程序如图7-20所示。
图7-18 ACSII码设置
图7-19 找到指令路径
图7-20 SEND_PTP程序
SEND_PTP函数各引脚的解释如下所述。
1)REQ:发送请求,每个上升沿发送一个消息帧。
2)PORT:CM1241 RS232串口的硬件标识符,在此设为常量RS232_1[CM],可从PLCTags中的Constants找到其对应的值,该值为11。
3)BUFFER:指定发送缓冲区(需要发送哪一个DB中的数据),其结构如图7-21所示。
4)LENGTH:发送的消息帧中包含多少字节的数据,数据类型为UInt。
5)PTRCL:FALSE,表示使用用户定义的通信协议,而非SIEMENS定义的通信协议。
(www.xing528.com)
图7-21 SEND_PTP发送缓冲区
6)DONE:发送完成输出一个脉冲。
7)ERROR:发送失败输出一个脉冲。
8)STATUS:状态字。
本例中,M10.0由0变为1时发送数据块db_Send(DB2)内db_Send.send_buffer数组中的10字节数据“How are u?”,SEND_PTP的输入/输出引脚的值如图7-22所示。
图7-22 SEND_PTP的输入/输出引脚的值
查看超级终端中已收到来自串口通信模块CM1241 RS232的字符,如图7-23所示。
图7-23 超级终端接收的字符
3.S7-1200中的接收程序
打开CPU 1214C的Main[OB1]程序编辑界面,在窗口右侧选择“指令”→“扩展指令”→“通信”→“点对点”指令下的RCV_PTP,将其拖入到程序1中并赋值。RCV_PTP程序如图7-24所示。
1)EN_R:接收请求,当此输入端为1时检测RS232模块接收的消息,如果成功接收,则将接收的数据传送到CPU中。
图7-24 RCV_PTP程序
2)PORT:CM1241 RS232串口的硬件标识符,在此设为常量RS232_1[CM],可从PlcTags中的Constants找到其对应的值,该值为11。
3)BUFFER:指定接收数据存放的区域(将接收的数据存放在哪一个DB中),其结构如图7-25所示。
图7-25 RCV_PTP接收缓冲区
4)NDR:成功接收到一个新的消息帧输出一个脉冲。
5)ERROR:发送失败输出一个脉冲。
6)STATUS:状态字。
7)LENGTH:接收到的消息中包含的数据有多少字节。
本例程序中,M20.0为1时检测RS232模块接收的消息,并将成功接收到的数据存放到db_RCV(DB2)中db_RCV.RCV_buffer数组中的15字节数组中。如图7-26所示,在超级终端窗口菜单中给RS232模块发送一个文本文件。文本文件内容为“Fine.Thanks!”,如图7-27所示。
图7-26 使用超级终端发送文件文件
图7-27 超级终端发送的文件内容
发送时可观察到RS232模块上的接收指示灯Rx会闪烁,监控RCV_PTP的输入/输出引脚的值如图7-28所示。
图7-28 RCV_PTP的输入/输出引脚的值
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。