MBUS_INIT、MBUS_SLAVE是西门子的官方库文件,受密码保护,你没必要去查看内部内容,你只要弄清楚如何使用这些库文件就好。
----------
MBUS_INIT指令用于使能和初始化或禁止Modbus通讯。
MBUS_INIT指令必须无错误的执行,然后才能够使用MBUS_SLAVE指令。在继续执行下一条指令前,MBUS_INIT指令必须执行完并且Done位被立即置位。
MBUS_INIT指令应该在每次通讯状态改变时只执行一次。因此,EN输入端应使用边沿检测元素以脉冲触发,或者只在第一个循环周期内执行一次。
模式输入值选择通讯协议:输入值为1时,将端口0分配给Modbus协议,并启用该协议,输入值为0时,将端口0分配给PPI,并禁止Modbus协议。
参数Baud将波特率设为1200、2400、4800、9600、19200、38400、57600或115200。S7--200 CPU的V1.2或更高版本支持波特率57600和115200。
参数Addr设置地址,其数值在1到247之间。
参数Parity用于设置校验使之与Modbus主站相配匹。所有设置使用一个停止位。可接受值为: 0--无校验、 1--奇校验、 2--偶校验。
参数Delay通过为标准Modbus信息超时增加指定数量的毫秒,扩展标准Modbus信息结束超时条件。当在一个连接的网络上操作时,该参数的典型值为0。如果您使用具有纠错功能的调制解调器时,将延迟时间设为50至100毫秒。如果您使用宽频电台,设置该延迟值为10至100毫秒。Delay的数值可以是0到32767毫秒。
参数MaxIQ将Modbus地址0xxxx和1xxxx可用的I和Q点数设为一个0--128之间的数值。数值为0时,禁止输入和输出的所有读和写操作。建议MaxIQ的取值为128,即允许访问S7--200的所有I点和Q点。
参数MaxAI将Modbus地址3xxxx可用的字输入(AI)数目设为一个0--32之间的数值。数值为0时,禁止读模拟量输入。要允许访问所有的S7--200模拟输入,MaxAI的建议值如下:CPU221为0、 CPU222为16、 CPU224、CPU224XP和CPU226为32。
参数MaxHold设置可以使用的V区字保持寄存器的个数,相应于Modbus地址4xxxx。例如,要允许主站访问2000字节的V存储区,则设置MaxHold为1000字(保持寄存器)。
参数HoldStart是V存储区的保持寄存器的起始地址。通常设为VB0,所以参数HoldStart设为&VB0(VB0的地址)。也可以将其它的V区地址指定为保持寄存器的起始地址,以便使VB0可以在项目中用作其它目的。Modbus主站可以访问起始地址为HoldStart,字数为MaxHold的V存储区。
当MBUS_INIT指令完成时,Done输出接通。Error输出字节包含指令执行的结果。
----------
MBUS_SLAVE指令用于服务来自Modbus主站的请求,必须在每个循环周期都执行,以便检查和响应Modbus请求。
当EN输入为接通时,指令在每次扫描时都执行。
MBUS_SLAVE指令无输入参数。
当MBUS_SLAVE指令响应Modbus请求时Done输出接通。如果没有服务的请求,Done输出会断开。
初始化建立:
在OB中调用modbus库,在库帮助中有例程可以参看。
西门子S7-200PLC在实时模式下具有速度快,具有通讯功能和较高的生产力的特点。一致的模块化设计促进了低性能定制产品的创造和可扩展性的解决方案。来自西门子的S7 - 200微型PLC可以被当作独立的微型PLC解决方案或与其他控制器相结合使用。
不同时。mbus一init与mbus一ctrl不同时使用,两个口各写各的就行了主站的初始化程序和从站的初始化程序的PORT引脚不同,不影响或者一个MODBUS-RTU,另一个走MODBUS-TCP,200SMART都原生自带一个485口和一个PN口。
MBUS-INIT和MBUS-SLAVE是西门子PLC关于modbus通讯协议指令,调用通讯modbbus通讯通过设置这两个指令就可以,PLC上的通讯接口一般都是485接口,有不少设备是的通讯接口都是PowerBUS接口,接线时要注意区分。
系统块那个是s7-200的自带协议,程序执行Modbus初始化后,自带协议自动变为Modbus协议。因此,完全可以不一致。