1.硬件设置
程序中的Modbus通讯是在两个S7-200CPU的0号通讯口间进行的(最好每个CPU都有两个通讯口)。在主站侧也可以用相应库文件"MBUS_CTRL_P1"和"MBUS_MSG_P1"通过1号通讯口通信。通讯口1用Micro/WIN与PG或PC建立连接,两个CPU的通讯口0通过Profibus缆进行连接(电缆的针脚连接为3,3,8,8-见图01)。另外,需要确定逻辑地M相连。

2.参数匹配
对于MODBUS通讯,主站侧需要程序库"MBUS_CTRL"和"MBUS_MSG",从站侧需要程序库"MBUS_INIT"and"MBUS_SLAVE"。
在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_SLAVE

3.库的存储地址
项目完成后必须要在Micro/WIN中定义库的存储地址,当定义完存储区后,要保证在任何情况下不能再被
其它程序所使用(主站侧:"DataPtr"+"Count"从站侧:"HoldStart"+"MaxHold")。

4.保持寄存器值的传输
将程序下载到相应的CPU后,可以在状态表中给主站侧的V存储区赋值,然后从站侧监视数值的变化。
当主站的使能后,VW2中的内容就被发送到从站并写入从站的VW2。
保持寄存器值的传输见图.04。
指针"DataPtr"代表了被读的V区起始地址。
参数"Count"指定了被写入地址"Addr"="4xxxx"(保持寄存器)字的个数。
相应V存储区的变量将被写到保持寄存器启始地址"Addr"="40002"("RW"="1")中。
保持寄存器是以字为单位传输的,它与从站的V区地址对应。
指针"HoldStart"指定了与保持寄存器起始地址40001相对应的V存储区的初始地址。
可以按下面公式计算从站的V区目标指针:
2*(Addr-40001)+HoldStart=2*(40002-40001)+VB0=VB2
另外,要保证主站侧所要写入的数据区包含在"MaxHold"定义的数据区内:
MaxHold=Addr-40001+Count=40002-40001+1=2
免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系