您现在的位置是:首页 > 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指令中的HoldStartMaxHold参数分配的V存储区的地址重叠,否则MBUS_INIT指令会返回一个错误。

    例如,当HoldStartMaxHold分别为&VBO1000时,允许主站访问从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,允许访问所有的IQAI,允许访问从VB0开始的1000个保持寄存器字(2000个字节),“Done”输出为M0.1,错误代码地址为MB1。模式开关在RUN位置时,每次扫描都执行Modbus从站协议指令MBUS_SLAVE。图10-25是梯形图程序。

Modbus从站协议指令

    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.71

   CALL    MBUS_SLAVE, M0.2, MB2

    网络3

   LDN    SM0.7

   EU    //如果工作开关切换到TERM位置

   R    SM30.0,1    //设置为PPI协议(SM30.0=0)

(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:艾特贸易网客服为您服务