来源:网络转载更新时间:2020-08-13 10:46:06点击次数:4101次
o引言
智能控制仪表是工业控制中最常用的控制器之一,具有专业性强、智能化高、控制算法先进、使用方便等特点。Modbus通信协议作为一种开放高效的通信协议为众多智能控制仪表广泛应用。如何将这些具备Modbus通信接口的智能设备简单有效地集成到工厂SCADAHMI(SupervisoryControlAndDataAcquisitionHumanMachineInterface)系统中已经是各自动化公司必须面对的问题。
西门子S7-300系列PLC以其运行可靠、集成度高、可扩展性强等优点,在工控领域被广泛应用。其提供的CP341通信处理模块可实现PLC与各种串口设备之间的智能通信。因此可以利用PLC的通信处理模块读取智能控制仪表中的数据,然后通过PLC中的工业以太网模块、现场总线模块连接到企业SCADAHMI系统中达到完美的结合。该文在设计某自动化生产线时,通过基于CP341的ModbusASCII通信方式,将南京某科技有限公司生产的XK-2000动态称重显示控制器的参数读取到S7-300PLC中,参与实际的过程控制。
1通信系统构成及仪表协议介绍
1.1通信网络的结构
在自动化生产线中,要求将16台XK-2000仪表的重量实际数值、设定数值等通过通信模块读取到PLC(系统选用6ES7315-2AH14-0AB0)中。XK-2000仪表提供Modbus通信接口,该仪表通信协议为标准的ModbusASCII码协议。为了能够将仪表的参数读入到SiemensPLC中,采用了某公司的Modbus通信模块CP341(6ES7341-1CH02-0AE0),通过集成在CP341通信模块中ASCII码通信协议读取出XK-2000仪表中的数据。其网络结构如图1所示。
图1网络结构
XK-2000仪表与PLC之间构成的网络为RS485网络,双方以19200bps的通信速率进行通信,以下为CP341模块和XK-2000仪表及通信协议的简单介绍。
CP341通信处理模块是某公司提供的点到点连接的高速串行通信的低成本解决方案,是实现SiemensPLC和第三方智能控制仪表通信的模块。它可以在SiemensS7-300和ET200M中使用,该通信模块提供了RS232C(V.24)、20mA(TTY)和RS422/RS485(X.27)三种不同形式的传输接口。
该模块可以实现ASCII码,39W(R)和RK512,客户协议(可装载)等通信协议,通过集成在STEP7中的参数化工具可进行简单的参数化设置,其设置主要包括通信方式(波特率、数据位数、停止位数和奇偶校验)、接口方式(485或422)等,对于同XK-2000仪表通信,设计中可以设置为:①通信方式19200,7,n,l;②接口方式RS485,其余的设置为默认方式。
XK-2000是南京某科技有限公司专门针对皮带秤设计的一种高性能动态称重显示控制仪表。液晶显示,中文菜单,提供PID控制算法和RS485通信接口。为了能够与CP341模块通信,需要设置仪表中的参数,见表1。
XK-2000仪表的通信协议是标准的ModbusASCn码通信协议,报文数据帧见表2,功能码见表3。
指令起始地址
指令起始地址
指令起始地址
数据长度 数据起始到结束的长度:由4个ASCH码组合
数据长度
数据长度
数据长度
LRC校验高位LRC检査码:由2个ASCII码组合
LRC校验低位
END高位 结束字符:ENDHi=CR(0DH),END
LO=LF(OAH)
END低位
表3功能码
功能码 功能
03H 读出缓存器内容
06H 把具体二进制值装入一个保持寄存器
08H 回路测试
ioh 把具体二a制值装入一串连续的保持寄存器
2软件实现
2.1CP341同XK-2000仪表之间的通信
要通过CP341通信模块实现同XK-2000仪表之间的通信,PLC程序的设计主要包括读数据命令程序、写数据命令程序、故障处理程序设计以及LRC校验程序等。主程序流程如图2所示。
(启动)
I
初始化
I启动轮询|
图2主程序流程图
2.2CP341读数据程序
考虑到系统有16块仪表,采用轮询的方式访问每块仪表,而对于发送读取数据的DB块仅是仪表地址、功能码和LRC校验码不相同,因此,所有的仪表采用一个相同的DB块来执行,根据不同的仪表号修改相应的仪表地址、功能码和LRC校验码。DB(DB901)块的结构如表4所示。
仪表地址的修改采用循环计数方式来实现。每次循环仪表号加1,直到16为止,然后回到地址1重复执行。读数据由写操作和读操作组成,程序如下:发送读命令
2.5LRC校验
LRC域是一个包含8位二进制值的字节。LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并与接收到消息帧中LRC域中的值比较,如果两值不等,说明有错误。LRC校验比较简单,它在ASCII协议中使用,检测了消息域中除开始的冒号及结束的回车换行号外的内容。' 它仅仅是把每一个需要传输的数据按字节叠加后取反加1即可。程序如下:
3结束语
通过使用点到点串行通信模块CP341建立与XK-2000智能仪表之间的通信,不仅可以实时读取仪表中的设定值、瞬时值等,同时可以远程设置仪表中的数值。
文章来源于网络转载,侵删
×