曾有人发过的但没人回答,我也遇到了此问题:使用S7-200自由口进行Modbus Rtu通讯,设定通讯控制字格式SMB30为16#09 ,即1位起始位、8位数据位、一位停止位、无校验,波特率9600。由于Modbus Rtu通讯帧格式里没有起始位和停止位符号,所以设定接收信息控制字SMB87为16#94,即允许端口0接收信息、无起始符、无结束符、采用检测SMW90设定的3.5T字符的静止时间来判断消息帧状态,开始接收信息。设定字符间定时器为SMW92中的时间来判断PLC接收消息帧信息结束。不使用中断条件检测起始信息。 这里的Modbus Rtu通讯帧里的1个字符(异步10位,8位数据位+2位停止位)时间计算采用1/9600*10=1.04ms,设定字符间定时器SMW92为1ms,设定通讯口空闲检测时间为SMW90为5ms。上面的字符间隔时间SMW92和通讯口空闲时间SMW90计算的对不对?由于使用了字符中断ATCH时间8,检测端口0接收到SMB2中的数据,请问字符间隔定时器SMW92和端口空闲检测时间SMW90的时间值需要延长么? 请大家帮助我一下,谢谢。
没有起始和结束字符,例如命令XMT 发送01 03 0F A5 00 04 57 3E ,SMW87设为16#94 但是RCV指令不能收到数据。因命令和地址格式不符不能用200的MODBUS库,请同行来指导一下该如何设置?多谢!