Q1:S7-200是否支持Modbus ASCII模式?
答:S7-200可以支持上述模式,但是没有现成的指令库,需要用户自己利用自由口的方式编程。
Q2:项目编译后为何出现很多错误?
答:使用指令库时,若编译后出现很多错误,一般是因为未指定库指令数据存储区。
Q3:Modbus从站的网络地址与S7-200的CPU网络地址有何关系?
答:没有关系。支持网络通信的通信协议必须有其自己的网络寻址规定。Modbus从站的地址只是它在Modbus网络上的地址,而通常所说的S7-200 CPU地址是CPU在西门子的PPI网络上的站地址。
Q4:MBUS_MSG指令中代表数据长度的COUNT引脚单位是什么?
答:对于Modbus地址=0xxxx或1xxxx的,引脚单位为Bit;对于Modbus地址=3xxxx或4xxxx的,引脚单位为Word。
Q5:如何访问大于9999的保持寄存器地址?
答:Modbus Master协议库支持超过9999的保持寄存器地址。地址范围为400001-465536。只需在调用MBUS_MSG子程序时给Addr参数赋相应的值即可,如416768。
Q6:为何有些HMI软件使用Modbus RTU读取S7-200中的实数会出现错误?
答:不同的厂家关于浮点数格式定义的不同,西门子的PLC遵循的是高位低存的规律,和其他的厂家有可能会不一样,这样读回来的实数或整数的高低字节会发生反转,这个时候可以通过监控、判断,在程序当中把它掉过来就可以了。
Q7:MBUS_MSG显示Error 6#?
答:Error 6#表示Modbus正在忙于其它请求。MBUS_MSG指令同时只能允许有一个读写操作处于运行过程,如果在一个读写操作尚未完成时启用另外一个读写请求,就会发生Error 6#。利用Done位可以对规避这一问题。
Q8:MBUS_MSG显示Error 3#?
答:Error 3#表示从站无应答。即主站的读写请求发出后,从站没有在Timeout时间内返回报文。多种原因可以引起此故障,包括:
硬件故障(线路,端口等问题)。
错误的从站地址,波特率,奇偶校验。
从站不支持此功能码,或不能被从站识别的从站数据地址。
Timeout时间过短(从站响应较慢),通过延长Timeout可以解决这个问题。
楼主最近还看过