你现在位置:首页>技术论文>数据通讯>正文
闲话MODBUS通讯(5)
日期:2008-7-24 23:41:41 来源:本站整理  
点击: 作者:
点击【】放大字体.
关于modbus多主站轮询的问题。
WWW.PLCJS.COM——可编程控制器技术门户

plcjs.技.术_网

其实这并不仅仅是modbus的问题,485通讯的好处是可以挂多个从站,但是问题随之而来,主站与各个从站通讯就成了问题,因为485通讯是半双工的,也就是发的时候不能收,收的时候不能发,换句话说大伙要有秩序要排好队。查阅西门子网上课堂里面关于串口通讯的教程,最后提到了485多站轮询的问题,给了两种解决方案:
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WW.W_PLC※JS_C,OM-PL,C-技.术_网

1、定时发送;
plcjs.技.术_网

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

2、以发送和接收完成标志来继续下次发送;
WWW.PLCJS.COM——可编程控制器技术门户

WWW_PL※CJS_COM-PLC-技.术_网

个人觉得第二种方法效率比较高,当然如果在规定时间内容没有接收到正确数据,则应该继续下次发送而不是“苦等”下去。也就是应当有个time-out的设置。另外一般常见的retry我倒是觉得未必需要,如果这次收不到正确报文又何必再发呢?等下次轮询再发嘛,否则拖延整个轮询周期倒显得不好,只要把time-out设置的合适即可,也就是说每次轮询给从站一次机会足矣。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

在西门子论坛里面找到一个相关帖子:
WWW_P※LCJS_CO※M-PLC-技-.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

―――――――――――――――――――――――――――――
plcjs.技.术_网

W1WW_P4LCJS_COM-PLC-技.术_网

CPU为314(6ES7-1AE04-0AB0),外加CP341(MODBUS MASTER RTU),下载硬件及配置CP341驱动成功,但提示FB7,FB8不能下载,怎么办?是不是CPU版本问题?
WWW_PLCJS_COM-PLC-技.术_网

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

Dongle插了,什么程序先不下装,只下硬件,然后运行,OK
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

然后在STOP状态下,下装blocks,然后就出现下面的错误!
P.L.C.技.术.网——可编程控制器技术门户

(D280) Error compiling block in S7-300 CPU.
WWW_PLCJS_COM-PLC-技.术_网

Unable to copy the block ptp\SIMATIC
WWW_P※LCJS_CO※M-PLC-技-.术_网

300(1)\CPU 314\S7 Program(1)\Blocks\FB7.
WW.W_PLC※JS_C,OM-PL,C-技.术_网

Do you want to continue the copy
plcjs.技.术_网

procedure?
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

在线看CPU的故障报告:
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

Event 1 of 100:  Event ID 16# 6539
WW.W_PLCJS_COM-PLC-技.术_网

Illegal command in block (detected by compiler) 
WWW.PLCJS.COM——可编程控制器技术门户

FB number:      7
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

Module address:   2820
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

Operating mode: STOP (internal)
WWW_PLCJS@_COM%-PLC-技.术_网

Internal error, Incoming event
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

在线看CP341的诊断
WWW_P※LCJS_COM-PLC-)技.术_网

Module not available (I/O access error or parameter assignment error)
WWW_P※LCJS_CO※M-PLC-技-.术_网

兄弟们帮我看看怎么回事!!谢谢了
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

——可——编——程——控-制-器-技——术——门——户

 
WWW_PLCJS@_COM%-PLC-技.术_网

WWW_P※LCJS_COM-PLC-)技.术_网

―――――――――――
WWW_PLCJS_COM-PLC-技.术_网

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

谢谢楼上各位的答复,问题已经解决.
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

老的CPU不支持FB7,FB8,改用了FB107,FB108测试收发数据正常.
WWcW_PLCJS_COM-PLC-技.术_网

有点点收获,大家分享
WWW_PLCJS_COM-PLC-技.术_网

就是看了手册,发现FB8中大写的S及X可以不用.程序测试不用也能收发正常.不知道是不是瞎猫撞死耗子了,呵呵.
plcjs.技.术_网

现在还有些问题想求助兄弟们,望不吝指教.
W1WW_P4LCJS_COM-PLC-技.术_网

1.现场有四个从站,我采取何种方式来轮询每个站的数据.用四个发数据块,四个接收块,还是收发都只有一个数据块.数据块如何调度.每个站是不是FB8的DONE=1时FB7的EN-R才有效,还是EN-R一直有效?如果FB8的ERROR=1,对该站如何处理?是重新发送,还是程序直接跳过,轮询下个从站?看了siemens例程没有涉及到.做过相关方面的兄弟给点指点,谢谢了.刚接触通讯,不是很明白
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

2.现场的距离超过50米,要加电阻,那么CP341的330欧姆电阻怎么加到4,11的管角上? 8到底要不要接GND?如果两边等电位可以接,但一般都是不等的,那么8就可以不接了?是不是这样?
WWW_PLCJS_COM-PLC-技.术_网

希望可以得到兄弟们的指点,先谢谢了!
WWW_PLCJS@_COM%-PLC-技.术_网

——可——编——程——控-制-器-技——术——门——户

―――――――――
WW.W_PLC※JS_C,OM-PL,C-技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

1、我做过相关的通迅,我做的思路是每个从站有一个发数据块DB,一个接收块DB,在OB35中调用,通过计时器设定时间来同步改变FB7和FB8的接收和发送数据块号码来轮询,时间的占空为使能时间100ms和空闲时间500ms。不管从站是否返回数据,都得进行下一个从站的轮询,以免影响其它从站的通迅。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

2、如果是自己做接头自己焊一个电阻上去,如果是端子,跨接到端子上,8接到通迅接口的GND。
WWW_PL※CJS_COM-PLC-技.术_网

plcjs.技.术_网

―――――――――――――
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

plcjs.技.术_网

感谢lybin!!
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

您说的应该是在CP341里面建一个发送DB,一个接收DB吧?那么接收的数据如何转存?一个DB的话,下个站的数据不是覆盖了前面的数据吗?您怎么处理这个问题?
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

您说的时间的占空为使能时间100ms和空闲时间500ms什么意思?能说的明白点吗?
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

另外,我买的15针的一个D头,自己焊上去的,再焊加电阻的话,D头上面的塑料盖子都盖不上了,郁闷?
WW.W_PLCJS_COM-PLC-技.术_网

WW.W_PLC※JS_C,OM-PL,C-技.术_网

――――――――――――
WWW_PLC※JS_COM-PmLC-技.术_网

WWW.PLCJS.COM——可编程控制器技术门户

一般来说发送DB和接收DB是公用的,也就是说只需要个发送DB,一个接收DB。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

发送时只管轮询,发送间隔(即楼上的说的占空使能)依据轮询次数、波特率、长度还有程序复杂程度而定。我比较喜欢用ClockMemory来做。另外发送时可将接收缓冲区清空一下。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

接收块始终使能,每个周期都对接收缓冲区进行数据提取,并将提取所得数据转存至其它地方。因为有校验,不用担心数据被覆盖。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

有点类似与生产/消费者的意思。
W1WW_P4LCJS_COM-PLC-技.术_网

WWW.PLCJS.COM——可编程控制器技术门户

―――――――――――――――――――――――――――
WWW.PLCJS.COM——可编程控制器技术门户

WWW_P※LCJS_COM-PLC-)技.术_网

我做的是每个从站建一个发数据块DB,一个接收块DB,通过时间来改变FB7和FB8指定DB块,不存在数据转存问题.如:在与1号从站通迅时,FB7和FB8数据DB块分别用DB1和DB2,在与2号从站通迅时,FB7和FB8数据DB块分别用DB3和DB4,在与3号从站通迅时,FB7和FB8数据DB块分别用DB5和DB6,......
——可——编——程——控-制-器-技——术——门——户

占空为使能时间100ms和空闲时间500ms意思为M值在一个周期600MS内开始的100ms为1,和500MS的时间为0
WW.W_PLCJS_COM-PLC-技.术_网

电阻很小的,可以焊接在15针和9针的D型头内,我做过.
W1WW_P4LCJS_COM-PLC-技.术_网

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

―――――――――――――――――――――――――――――――――
评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行