S7-200与希望森兰SB200变频器做Modbus通讯的问题?

基本配置:
CPU是226,变频器SB200,通讯参数设定波特率9600,1个起始位,8个数据位,1个停止位,无校验。

故障现象:
读指令间歇性的报03错误,通讯超时,读取的数据一直未零。

问题1:寄存器地址应该怎么写?
变频器的寄存器地址是四位16进制地址,PLC的Mbus_MSG指令要求5位十进制地址。变频器功率参数的地址为320DH,转成十进制是12813.Mbus_MSG指令中这个地址应该咋写呢?
参考附件图片里的寄存器特点。

问题2.为啥老是通讯不上
我用的支持中心下载的示例程序,还是不行,程序段如下:
TITLE=程序注释: modbus 主站读写程序
// 
// 注意:1. modbus RTU主站功能是通过指令库中预先编好的程序功能块实现的,该库只针对Port 0口有效
//             2. modbus RTU主站使用了一些用户中断,在用户程序中不能禁止中断
//             3. 该例程访问的为一个从站,若访问不同的从站,可通过改变从站地址来实现。
// 
Network 1 
// 第一扫秒周期, 复位各标志位和起始位
LD     SM0.1
R      M2.0, 8
R      M4.0, 8
R      M0.0, 2
Network 2 
// modbus 主站初始化完成后, 启动读写指令
LD     M0.0
EU
S      M0.1, 1
Network 3 // 网络标题
LD     SM0.0
=      L60.0
LD     SM0.0
=      L63.7
LD     L60.0
CALL   SBR1, L63.7, 9600, 0, 1000, M0.0, MB1
Network 4 
LD     M0.1
O      M2.3
=      L60.0
LD     M0.1
EU
LD     M2.3
EU
OLD
=      L63.7
LD     L60.0
CALL   SBR2, L63.7, 1, 0, 412814, 1, &VB1500, M2.1, MB3
Network 5 
// 读取从站保持寄存器的数据完成,复位请求
LD     M2.1
R      M2.3, 1
R      M0.1, 1
Network 6 
// 读取从站输入点
LD     M2.1
=      L60.0
LD     M2.1
EU
=      L63.7
LD     L60.0
CALL   SBR2, L63.7, 1, 0, 412824, 2, &VB2000, M2.2, MB4
Network 7 
// 读取从站输入点完成,复位请求
LD     M2.2
R      M2.1, 1
Network 8 
// 写从站实际输出值
LD     M2.2
=      L60.0
LD     M2.2
EU
=      L63.7
LD     L60.0
CALL   SBR2, L63.7, 1, 1, 12801, 2, &VB3000, M2.3, MB5
Network 9 
// 写从站实际输出值完成,复位请求
LD     M2.3
R      M2.2, 1

问题补充:
二楼关于地址的讲法不太确切,用哪种方式写地址的话,编译通不过,提示指令操作数非法!

继续求解……

图片说明:

S7-200与希望森兰SB200变频器做Modbus通讯的问题?    S7-200与希望森兰SB200变频器做Modbus通讯的问题?   

最佳答案

你的参数表里
3200H,对应地址为43201或43200你自己试看看吧,其他的都是顺序就是了,指令里写w#16#43200
还有你这样也看不出什么来,你用个串口监视器监控下看看有没有发出正确的命令,还有你的485线可能需要交叉互换,你要换下看看。例子程序本身没有问题,看看线路和变频设置对不对。

提问者对于答案的评价:
后来证明程序确实没问题,参考http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=112731&cid=1028
里面的评价内容。

专家置评

已阅,最佳答案正确。

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

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月29日 下午4:56
下一篇 2017年11月29日 下午4:56

相关推荐

  • PID精度调节

    我现在用S7-200的PID来控制加热,要求温度误差在±3°C左右,但是用向导生成的PID控制程序调控,过程中经常出现以下现象:比如我设置50°C,设置47~53°C为就绪状态,结…

    SIMATIC S7-200 2017年6月7日
  • 如何对旧的有USS通讯的224CN进行PPI编程?

    一台旧设备要改造,PLC为224CN,通过Port0用USS和变频器M420通讯。由于唯一的通讯口被USS占用,现在想用PPI编程线修改PLC程序,该如何实现呢? 最佳答案 这个如…

    SIMATIC S7-200 2021年7月5日
  • s7200与触摸屏连接问题

    s7200plc与西门子触摸屏之间通讯线那几个脚连接,是23交叉5直连,还是38直连,还是有其他的连接方法求指教,在线等回复 钻石用户推荐最佳答案 请问MPI电缆或自制的电缆两端都…

    SIMATIC S7-200 2021年7月5日
  • 200的通讯模块安装位置

    1)400电话技术支持告之以太网模块最好安装在cpu旁边,不知道如果安装在最末端会有何风险。2)profibus模块安装位置是不是同样的道理。谢谢了。 最佳答案 以太网模块最好安装…

    SIMATIC S7-200 2017年11月20日
  • 存储问题

    请问我一个字的内容怎么用2个字节表示,也就是说我有一个数字2000怎么用2个字节来表示?  谢谢 同样2个字节的内容怎么用一个字来表示。VW0是不是就…

    SIMATIC S7-200 2020年10月31日
  • TD400C问题,请各位朋友帮帮忙,急!

    我现在用的是CPU224XP+EM277,跟上位机通讯是PROFIBUS-DP总线形式。通过上位机的设定值和CPU采集到的温度值进行比较,上位机设定的温度值要求在TD400C上显示…

    2020年10月31日
  • S7-200与正泰带RS485多功能表PD666通讯

    1.我PLC选的是224CN,加了一个以太网模块,与上位机wincc连接,走OPC2.现在加块仪表是485接口的,支持Modbus RTU协议,224CN自带485串口,…

    SIMATIC S7-200 2017年6月5日
  • 请问EM231 订货号为231-0HF22-0XA0 可以输入电流信号吗?

    EM231 8点模拟量输入订货号为231-0HF22-0XA0,可以输入电流信号吗? 最佳答案 8输入的EM231模块只有第6、7两通道可以用做电流输入,使用拨码开关1、2对其进行…

    SIMATIC S7-200 2021年7月5日
  • S7-200 子程序调用问题

    写了一个累计设备运行时间的子程序,其中发现一些问题,请教大家。首先建立了一个子程序,IN变量建立了两个,一个是设备运行的状态,作为计时开始,一个为清零状态。OUT变量建立了三个,分…

    2020年10月31日
  • 200PLC编程

    现有200PLC226CPU,有个温度循环要做,一个循环:从常温降温到77K在设定保温时间后在升温至室温设定保温时间,一共循环5次。请教下编程是怎么编或者什么思路。 最佳答案 1、…

    SIMATIC S7-200 2017年6月6日