文档介绍:S7-200-MODBUS通讯————————————————————————————————作者:————————————————————————————————日期: 根据查询到的资料,P1口只能做主站,P0口既可做主站,也可以做从站安装好的S7-200编程软件一般是不带库的,所以需要从网上下载MODBUS库,然后才能做Modbus通讯的子站,压缩包直接点安装后,库文件就安装到了编程软件里面了P1口不能做从站4,西门子S7200做Modbus从站需要使用MBUS_INIT、MBUS_SLAVE即可。MBUS_INIT指令被用于启用和初始化或禁止Modbus通讯。在使用MBUS_SLAVE指令之前,必须正确执行MBUS_INIT指令。指令完成后立即设定"完成"位,才能继续执行下一条指令。在每次扫描且EN输入打开时执行该指令。应当在每次通讯状态改变时执行MBUS_INIT指令。因此,EN输入应当通过一个边缘检测元素用脉冲打开,或者仅在首次扫描时执行。"模式"输入数值选择通讯协议:输入数值1将端口0指定给Modbus协议并启用协议;将输入数值0指定给PPI,并禁用Modbus协议。"波特"参数将波特率设为1200、2400、4800、9600、19200、38400、57600或115200。"地址"参数将地址设为1和247之间(包括1和247)的数值。"校验"参数被设为与Modbus主设备校验相匹配。可接受的数值为:*0-无校验*1-奇数校验*2-偶数校验 "时延"参数通过将指定的毫秒数增加至标准Modbus信息超时的方法延长标准Modbus信息结束超时条件。该参数的典型数值在有线网络上应为0。如果您在使用带有纠错功能的调制解调器,将时延设为50至100毫秒的数值。如果您在使用扩展频谱无线电,将时延设为10至100毫秒的数值。"时延"数值可以是0至32767毫秒。MaxIQ参数将供Modbus地址00xxxx和01xxxx使用的I和Q点数设为0至128之间的数值。数值0禁止所有向输入和输出的读取。建议使用的MaxIQ数值是128,该数值可在S7-200中存取所有的I和Q点。 MaxAI参数将供Modbus地址03xxx使用的字输入(AI)寄存器数目设为0至32之间的数值。数值0禁止模拟输入的读数。建议使用的MaxAI数值如下,这些数值可允许存取所有的S7-200模拟输入: *0用于CPU221*16用于CPU222*32用于CPU224、226和226XM MaxHold参数设定供Modbus地址04xxx使用的V内存中的字保持寄存器数目。例如,为了允许主设备存取2000个字节的V内存,将MaxHold设为1000个字的数值(保持寄存器)。 HoldStart参数是V内存中保持寄存器的起始地址。该数值一般被设为VB0,因此HoldStart参数被设为&VB0(VB0地址)。其他V内存地址可指定为保持寄存器的起始地址,以便在项目的其他地方使用VB0。Modbus主设备可存取V内存MaxHold个字数,从HoldStart开始。MBUS_INIT指令完成时,"完成"输出打开。"错误"输出字节包含执行指令的结果。请参阅Modbus从属协议执行错误代码中可能因执行指令而产生的错误条件。 MBUS_SLAVE指令被用于为Modbus主设备发出的请求服务,并且必