您现在的位置是:首页 > PLC技术 > PLC技术
使用Modbus从站协议的S7-200 PLC程序设计
来源:艾特贸易2018-07-04
简介如果在用户程序中调用了 Modbus 从站协议指令, S7-200 就可以作为 Modbus 从站工作,同时会有几个相关的子程序自动加到项目中,编程步骤如下: (1) 在用户程序中调用 Modbus 从站指令。
如果在用户程序中调用了Modbus从站协议指令,S7-200就可以作为Modbus从站工作,同时会有几个相关的子程序自动加到项目中,编程步骤如下:
(1)在用户程序中调用Modbus从站指令。
MBUS_INIT指令用来设置通信参数,该指令只在一个扫描周期内执行(用SM0.1)。程序中只能使用一条MBUS_SLAVE指令,每次扫描都应调用该指令,以响应接收到的通信请求。
(2)为Modbus从站协议指令分配库内存。
Modbus从站协议占用连续的779个字节变量存储区,需要为它们指定起始地址。在“文件”→“库内存”中为Modbus指令分配V存储区地址。可以输入起始地址,也可以使用“建议地址”。分配内存时,不要与MBUS_INIT指令中的HoldStart和MaxHold参数分配的V存储区的地址重叠,否则MBUS_INIT指令会返回一个错误。
例如,当HoldStart和MaxHold分别为&VBO和1000时,允许主站访问从VB0开始的1000个保持寄存器(2000个字节),所以为Modbus从站协议分配的V存储区的起始地址应大于等于VB2000。修改地址后,需要下载程序块,修改才会起作用。
(3)处理Modbus协议与PPI协议的切换。
PLC在“RUN”模式(SM0.7=1)时才能执行Modbus通信协议。为了保证编程软件与PLC的通信,模式开关切换到TERM位置(SM0.7=0)时,令SM30.0=0,将通信模式设置为PPI协议。
【例】 首次扫描时执行MBUS_INIT指令,初始化Modbus从站协议,要求如下:从站地址为1,端口0的波特率为19 200 b/s,无奇偶校验,延迟时间为0,允许访问所有的I、Q和AI,允许访问从VB0开始的1000个保持寄存器字(2000个字节),“Done”输出为M0.1,错误代码地址为MB1。模式开关在RUN位置时,每次扫描都执行Modbus从站协议指令MBUS_SLAVE。图10-25是梯形图程序。
图10-25 Modbus从站协议指令
下面是语句表程序:
网络1
LD SM0.1 //首次扫描时
CALL MBUS_INIT,1,1,19200,0,+0,+128, +32, +1000, &VB0, M0.1, MB1
网络2
LD SM0.7 //RUN模式时SM0.7为1
CALL MBUS_SLAVE, M0.2, MB2
网络3
LDN SM0.7
EU //如果工作开关切换到TERM位置
R SM30.0,1 //设置为PPI协议(SM30.0=0)
(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:)
点击排行
