
硬件设置详解
在Modbus通信配置中,两个S7-200 CPU的通信端口是关键。推荐每个CPU都配备两个通信端口。Modbus通信主要在0号通信端口之间进行。主站侧可以通过相应的库文件“MBUS_CTRL_P1”和“MBUS_MSG_P1”通过1号通信端口进行通信。通信端口1通过Micro/WIN与PG或PC建立连接,而两个CPU的通信端口0则通过Profibus电缆连接(电缆针脚连接如图01所示)。还需要确保逻辑地M相连。
参数匹配步骤
对于MODBUS通信,主站侧需要程序库“MBUS_CTRL”和“MBUS_MSG”,而从站侧则需要程序库“MBUS_INIT”和“MBUS_SLE”。在Micro/WIN中,您需要为主站和从站分别创建一个新项目,并按照图02设置程序与参数。
关键的参数匹配步骤包括确保主站与从站的“Baud”和“Parity”设置一致。“MBUS_MSG”程序块中的“Slave”地址需要与“MBUS_INIT”程序块中的“Addr”设置一致(参照图02)。需要注意的是,在Micro/WIN的“系统块”中设置的通信端口0的波特率与MODBUS协议无关(“Mode”设置为“1”)。
程序库参数表格
以下表格详细列出了主站和从站程序块的各个参数选项及其含义:
主站:MBUS_CTRL、MBUS_MSG
从站:MBUS_INIT、MBUS_SLE
库的存储地址设定
完成项目后,在Micro/WIN中必须定义库的存储地址。一旦存储区域被定义,必须确保在任何情况下,其他程序不能使用这些存储区域(主站侧:“DataPtr”+“Count”,从站侧:“HoldStart”+“MaxHold”)。
保持寄存器值的传输过程
将程序下载到相应的CPU后,可以在状态表中给主站侧的V存储区赋值,从站侧将数值的变化。当主站的I0.0被激活时,VW2中的内容将被发送到从站并写入从站的VW2。
保持寄存器值的传输如图04所示。其中,“DataPtr”指针代表了被读的V区起始地址。“Count”参数指定了写入地址“Addr”=“4xxxx”(保持寄存器)字的个数。相应的V存储区变量将被写入保持寄存器的起始地址“Addr”=“40002”(“RW”=“1”)中。保持寄存器的传输是以字为单位进行的,与从站的V区地址相对应。通过计算可以从站的V区目标指针。还需确保主站侧要写入的数据区包含在“MaxHold”定义的数据区内。
有关PLC之MODBUS通信的案例及其他详细信息,可访问PLC论坛(出处:PLC论坛-全力打造可编程控制器专业技术论坛)。
非标自动化。
