S7-200SMART CR60从站功能程序

我用Modbus 从站功能编写了一段程序在SR60上可以使用,但是在CR60上就会提示#10从站功能未启用。可以编个程序给我看看吗

问题补充:
问题已经解决,因为CR60和CR40不带扩展所以MaxIQ要写成0,这是我写的程序

最佳答案

重新确认MBUS_INIT进行初始化指令,并用SM0.1调用,使用SM0.0调用MBUS_SLAVE,检查硬件连接。
参考官方例子:
从站:
在第一个循环周期内初始化Modbus从站协议
Mode:         模式选择,启动/停止MODBUS,1=启动;0=停止
Address:     从站地址,MODBUS从站地址,取值1~247
Baud:         波特率,可选1200,2400,4800,9600,19200,38400,57600,115200 
Parity:         奇偶校验,0=无校验;1=奇校验;2=偶校验 
Port:           0=CPU集成的RS485通信口 Port 0,1=可选信号板通讯口 Port 1
Delay:         延时,附加字符间延时,缺省值为0 
MaxIQ:       最大I/Q位,参与通信的最大I/O点数,S7-200 SMART的I/O映像区为256/256,缺省值为256
MaxAI:       最大AI字数,参与通信的最大AI通道数,取值范围 0-56。值为0时将禁止读取模拟量输入。
MaxHold:   最大保持寄存器区,参与通信的V存储区字(VW) 
HoldStart:   保持寄存器区起始地址,以&VBx指定(间接寻址方式) 
Done:        初始化完成标志,成功初始化后置1 
Error:         初始化错误代码
在本例子中,设置从站地址为3
Port0 通讯波特率为9600
无校验
可以使用的S7-200 SMART 最 大数字量输入输出点数为256
可以使用的S7-200 SMART 最大模拟量输入寄存器字数为56
可以使用的V区寄存器地址字数为1000, 起始地址为VB1000
注意:本例子中,Modbus RTU 从站指令使用的库存储为VB0---VB780,这寄存器地址不能再被程序中的任何指令使用,包括MBUS_INIT 和 MBUS_SLAVE 指令在内
LD     First_Scan_On:SM0.1
CALL   MBUS_INIT:SBR1, 1, 3, 9600, 0, 0, 0, 256, 56, 1000, &VB1000, M10.1, MB11
在每个循环周期内执行Modbus 从站协议
Done:   MODBUS执行,通信中时置1,无 MODBUS 通信活动时为 0
Error:    错误代码:0=无错误 
LD     Always_On:SM0.0
CALL   MBUS_SLAVE:SBR2, M10.2, MB12
补充问题回复:
是的啊,疏忽了这个。长知识了,谢谢你。

提问者对于答案的评价:
cr60和cr40没有扩展所以Maxai应该设置成0

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc143140.html

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月2日 下午11:00
下一篇 2017年6月2日

相关推荐