回复:Cp341通过RS485采用ModbusMasterRTU通信,采用范例程序,DB42的内容如何填写?

冬日

  • 帖子

    3360
  • 精华

    56
  • 被关注

    45

论坛等级:奇侠

注册时间:2005-09-01

白金 白金 如何晋级?

发布于 2007-03-01 22:14:12

0楼

我现在的问题是如果不这么处理,M4.5有时候就都是1,因为没有发送成功或者发送失败的的反馈,所有M4.5的值也就不变。但是如果把DB50.DBX 29.6也拿来不断置位复位通信就一直正常,我也不知道DB里面的这个点是干什么用的,当时也是逼急了就不断观察db的实际值,经过很多次实验我发现在通信不正常的时候,如果对这个这个点(不正常的时候常为1)进行复位一次就好了。因此就这么处理下来了,当然我这种处理方式不太好,但是目前就是能解决问题,也就不准备再改了,现在就是不明白这个点是干什么用的。
当然这个程序其实大部分都可以删掉,包括楼上说的有些代码是无效的。我试过了,如果只调用发送块,并且对发送块的REQ直接不断的置位/复位,把其他参数也直接写在输入到发送块,这样通信也正常。我没有把他们删除的原因是想尽量保留范例程序的代码,如果还有项目再做再好好研究。

A M 1.3 //2Hz的脉冲
= M 4.5
= DB50.DBX 29.6
CALL FB 8 , DB50
SF :='S'
REQ :=M 4.5
R :=DB40.DBX0.1
LADDR :=256
DB_NO :=44
DBB_NO :=0
LEN :=6
R_CPU_NO:=
R_TYP :='X'
R_NO :=
R_OFFSET:=
R_CF_BYT:=
R_CF_BIT:=
DONE :=DB40.DBX0.4
ERROR :=DB40.DBX0.5
STATUS :=DB40.DBW12
If anything can go wrong, it will.
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。