登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:MODBUS通讯问题,大家看看哪里出错了

点击:2131 回复:7

一个使用MODBUS进行通讯的的程序,遇到了麻烦,请大家帮忙解决
……前边程序省略……
CALL SFB  12, DB50                                      //调用发送功能块SFB12
REQ     :=DB400.DBX0.0                              //触发调用,前面已设置,正常  
R         :=DB400.DBX0.1                              //闭锁调用,也正常      
ID        :=W#16#1000                                //从站地址,正常
R_ID    :=DB400.DBD16                               //不太清楚此参数功能,不过确信也无问题
DONE   :=DB400.DBX0.4                              //发送完成状态字,一直是 0状态
ERROR  :=DB400.DBX0.5                                        
STATUS :=DB400.DBW12                             //发送状态字,循环显示16#19,16#b,
                                                                 //16#2和16#0,不知何意。
SD_1     :=P#DB410.DBX  10.0  WORD 1        //只知道是发送区域,不懂是从哪个区域发        
                                                                // 送,向各位请教  
LEN       :=DB400.DBW10                             //发送长度,正常                                  
我的问题是:可能是哪里的问题,导致DONE   :=DB400.DBX0.4 一直是0,发送不能完成?
06-04-07 19:08
hao a
06-04-08 09:34
有完整的程序吗?
发给我看看
guxianjue82@163.com
06-04-08 10:14
整个程序我没法拷贝过来,不过昨天晚上我去调试的时候,发现它的错误状态如下:
在线帮助我也抄下来了,请看(轮流显示这四种状态,其中每一横行显示了这种状态下两个状态位对应的值).
error       status          提示
0            25              通信已经启动,任务正在被处理
0            11              警告:新任务无效,因为前一个任务未完成
1            2                对方通信块拒绝接受。功能未被执行。
0            0                无警告,无错误。
另外在SYSTAT中得到的诊断信息为0830(H),转换为二进制是0000 1000 0011 0000,事件等级和事件数字我记不起来怎么算了。
总之就这么多信息,哪位帮忙看一看到底应该从哪里入手解决问题。
06-04-08 22:07
你用的是S7-300,首先你要确认是PLC还是从站的问题,有针对性处理.
06-04-08 23:41
不是啊,我用的是S7-400,CP441-2做主站,支持MODBUDS协议的设备做从站,采用MODBUS-RTU通信方式。我现在也在怀疑是不是从站的问题,因为这个块中发送的12个从站都没响应,不过这12个从站上面的通信指示灯都在闪啊;至于是不是主站的问题,我不知道从哪里入手去判断。很郁闷!
06-04-10 10:48
hard
06-04-12 08:34
问题找到了,我把设备的通讯屏蔽和强电地线连在一块了,真是难察啊
06-07-26 22:28

工控新闻

更多新闻资讯