开篇:润墨网以专业的文秘视角,为您筛选了一篇HONEYWELL PKS与S7-200的MODBUS RTU 从站协议通讯范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:
本文通过着重阐述对honeywell pks 和s7-200的modbus rtu 通讯的各种参数的设置,以实现HONEYWELLPKS 和S7-200之间的通讯。
主要参数设备:S7-200CPUMBUS_INIT MBUS_SLAVE终端服务器 交换机等
中图分类号:TP368文献标识码: A
引言:
在鞍山热能研究院碳素总厂针状焦工程中,通过一年多的工作,我们通过在HONEYWELL PKS 的画面与下位机的编程调试过程中,接触了多种通讯协议,使我对HONEYWELL PKS 和S7-200之间的通讯有个更深刻的认识,以下是我对HONEYWELL PKS与S7-200之间MODBUS RTU从站协议通讯的论述。
在S7-200中MODBUS RTU从站指令库只支持CPU上的通信0口(Port0), 是通过S7-200的自由口通信模式实现,它支持 STEP 7-Micro/WIN32 V3.2以上版本的编程软件,通讯前我们要检查Micro/WIN的指令树中是否存在MODBUS RTU从站指令库,库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。如果没有,必须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包,如图:
在编程时,我们一般使用SM0.1 来初始化MBUS_INIT,使用SM0.0来调用MBUS_SLAVE。
在我们对MBUS_INIT和MBUS_SLAVE进行编程设置时,我们一定要先明白每个管脚的意义与作用,下面我们对管脚逐一的剖析认识一下。
图1
在MBUS_INIT中,Mode模式选择:启动/停止MODBUS, 1=启动;0=停止
Addr 从站地址:MOUBUS从站地址,取值1~247
Baud 波特率:可选1200,2400,4800,9600,19200,38400,57600,115200
Parity奇偶校验: 0=无校验;1=奇校验;2=偶校验
Delay 延时:附加字符间延时,缺省值为0
MaxIQ最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128,缺省值为128
MaxAI最大AI字数:参与通信的最大AI通道数,可为16或32 MaxHold最大保持寄存器区:参与通信的V存储区字(VW)
Holdst~保持寄存器区起始地址:以&VBx指定(间接寻址方式)
Done : 初始化完成标志:成功初始化后置1
Error :初始化错误代码
在MBUS_SLAVE中,Done :MODBUS执行:通信中时置1,无MODBUS通信活动时为 0
Error : 错误代码:0=无错误
MaxHold和HoldStart指定的保持寄存器区,是在S7-200 CPU的V数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通信。我们一定要注意Modbus 中的保持寄存器区是按“字”寻址,即MaxHold规定的是VW而不是VB的个数。在图1的例子中,规定了 MODBUS 保持寄存器区从 VB700开始(HoldStart = VB700,保持区不一定要从VB0开始),并且保持寄存器为500个字(MaxHold=500),因保持寄存器以字(两个字节)为单位,实际上这个通信缓冲区占用了VB700~VB1699共1000个字节。因此分配库指令保留数据区时不能在VB700~VB1699之内。同时我们要注意的是V存储区大小与CPU型号有关,不同型号的CPU的V数据存储区大小不同,所以我们应根据需要选择MODBUS保持寄存器区域的大小.在这里我们对MBUS_INIT和MBUS_SLAVE进行如图1的设置。
我们通过一个终端服务器来实现485通讯转换为以太网通讯,如图2:
485通讯电缆
以太网通讯电缆
以太网通讯电缆
图2
注意:用以太网线连接终端服务器和交换机时,要注意它们连接的端口间的传输速率是否相同,不相
同一定要把它们设为相同的传输速率,这样终端服务器和交换机之间才能进行通讯。
在S7-200与MODBUS的地址转换中我们参照如图3:
Modbus地址 S7-200数据区
00001 ~ 00128 Q0.0 ~ Q15.7
10001 ~ 10128 I0.0 ~ I15.7
30001 ~ 30032 AIW0 ~ AIW62
40001 ~ 4xxxx T ~ T + 2 * (xxxx -1)
图3
T代表S7-200中的起始地址的数值,如图1中HoldStart = VB700,T就等于700.对应的MODBUS地址就是40001.
在HONEYWELLPKS中,我们要在QuickBuilder (CONFIGURATIONSTUDIOCONTROLSTRATEGYSCADACONTROL)中对通道、控制器、点进行设置,如图4
图4
在进入下面的画面时,我们单击图5标栏中的“+”会弹出一个窗口如图6:
图5
图6
我们需要在图6中的“标1”里选择要建立的类型,建立通道选择“Channel”,建立控制器选择“Controller”,建立点选择“Point”。例如建立一个通道,我们选择“channel” 这时下面在“标2”的位置我们选择“Modbus channel”,当我们选择完成后,在“标3”的位置是我们需要给建立的通道起个名字,我们假设输入“N_CHN1”,点击”OK”。会返回图5的画面,点击“Channel”就能看到我们建立的一个通道“标1”。控制器的建立和通道是一样的,就是在图6“标2”的位置选择“Modbus controller”,其它是相同的。我们讲一下“点”的建立,当我们在“标1”里选择点的建立后,下面的类型栏中需要我们选择点的类型,当我们建立一个模拟量的I/O点时,选择“Analog Point”如图7里的“标1”,建立数字量的I/O点时,选择“Status Point”如图7里的”标2“,其它就和通道的建立是一样的。当把通道、控制器、点都建立完成后,需要我们对通道、控制器、点进行具体的设置。