西门子CP340串行通信主站的软件实现
2015-05-25张锋
张 锋
(保定莱特整流器股份有限公司,河北 保定 071051)
Modbus 是一种主/从串行通信协议,可分为Modbus RTU 与Modbus ASCII 两种模式。这里仅有一台设备(主机)可以请求数据交换(叫做“查询”),而其他设备(从机)以向主机提供数据或执行主机的查询命令的方式对主机作出响应。Modbus协议定义了查询消息的格式以及从机响应的格式,主机查询消息包括地址、功能码、数据以及CRC 校验,从机响应消息包括地址、功能码、数据以及CRC校验。如果从机在接受消息时出错或是从机不能执行接收的命令,他将生成一个错误信息并作为响应发给主机。主从查询响应如图1所示。
图1 主从查询响应周期
设备地址在通信帧的开始部分,由8 位组成,有效的从机设备地址范围0~247(十进制),各从机地址的寻址范围为1~247;信息帧功能码告诉被寻址到的终端执行何种功能。有效码范围为1~255(十进制),有关常用功能码的内容见图2;数据域包含了终端需要的数据或者响应查询时采集到的数据;错误校验域是为了提高系统的安全性和效率,出错校验采用了16 位循环冗余的方法,即CRC 校验,CRC 域在信息帧的最后。
图2 常用功能码
1 PLC 硬件组态软件配置
1.1 硬件组态
使用STEP7 V5.5版本(其他版本也可),双击SIMATIC管理器图标进入SIMATIC管理器,弹出新项目对话框,输入名称,单击“完成”按钮。项目建立完成后,鼠标单击SIMATIC管理器左侧的项目名称,选择“插入新对象”选择“SIMATIC S7-300站”,将此项目下插入一个S7-300站。
图3 新建300 站点
选中插入的站,SIMATIC 管理器右侧将出现“硬件”文件,双击或用鼠标右键选择“打开对象”将打开“硬件组态编辑器”,如图4在右侧硬件库中依次选择机架RAIL,机架的1 槽放入电源模块,2 槽放置CPU 315-2DP,3 槽被CPU 占用,4槽放置CP340 RS422/485 通信模块。
图4 硬件配置组态
1.2 CP340 配置参数
双击CP340所在的槽位,会弹出如图5所示的对话框,左键点击“参数”按钮,配置模块。左键双击protocol,如图6,ASCII 选项卡下面部分设置模块通信参数波特率9600,数据位8,停止位1,无校验位;对话框最后一个选项通信线路电气接口特性(如图7),选择RS485两线半双工通信。设置完毕点击确定。在硬件组态界面,点击保存和编译。下载组态到PLC。
图5 CP340 模块属性
1.3 软件程序编写
新建FB100 程序块,为了方便编写程序实现功能,使用STL 语言,编写通信程序,在接口部分建立数据对象,包括但不限于使能位、从机地址、功能码、参考地址、数据数量、数据映像区,故障位、故障代码、超时连接时间(如图8)。然后建立FB程序块的背景数据块DB100。
图6 Protocol 配置ASCII
图7 Protocol 配置Interface
图8 数据对象
建立好数据对象后,新建程序段1,主站要对进行从站通信的各站进行初始化,发收信息命令,使用STL 编写。
QDFS 位控制西门子PLC 自带发送程序块FB2发送数据。QDJS 控制FB3 接收数据;接收段程序同样检测从机站号、功能码、数据和校验码;校验采用CRC16 校验方式。
2 软件流程图
主程序设计流程图如图10 所示。
3 通信测试
图9 发送数据程序代码
图10 主程序流程图
使用Modsim32 调试软件,连接串口转485,485线双线连接CP340 模块通信端口,在软件中新建仿真文件1,connection 选择计算机中对应端口,建立通信,device ID 设置从机站号,起始地址以及数据 长度。指示灯闪烁正常。在PLC 程序中新建程序块FC10,以及通信测试数据块DB10 进行数据测试。在仿真文件寄存器 40001-40010 中写入数据,在DB10.DBW0-DB10.DBW18 地址中可以收到仿真文件中写入的数据;主站读从站数据正常;在DB20.DBW0-DB10.DBW38 中强制写入数据,从仿真文件寄存器40011-40020 中可以收到主站发送数据;测试结果正常(图11)。
图11 仿真文件
4 结论
本文在Modbus协议的规则基础上,运用西门子PLC软件,使用STL语言编写适用于CP340模块的Modbus主站通信程序,通过调试实现Modbus通信协议的主站功能。运用主机轮询机制,保证每一个从设备的信息能够及时的发送到主站进行分析处理。省去了昂贵CP341+DOUGLE费用,程序编写灵活,重复利用率高,可在工程中广阔应用。
[1] 廖常初.S7-300/400 PLC 应用技术.[M].北京:机械工业出版社,2005.
[2] 边春元,任双燕,满永奎,等.S7-300/400 PLC 实用开发指南[M].北京:机械工业出版社,2007.
[3] Siemens AG.S7-300 CP340 的PtP 耦合与组态 设备手册 [Z].2007.20-26,200-203.
[4] MODICON,Inc.,Industrial Automation Systems.Modicon Modbus Protocol Reference Guide [Z].1996.http://www.modbus.org/docs/PI_MBUS_300.pdf.