回复:MODBUS-RTU

ht0496

  • 帖子

    85
  • 精华

    0
  • 被关注

    3

论坛等级:游民

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2004-07-30 16:48:06

0楼

对于Modbus-RTU slave
对于端口0

初始化子程序:

LD SM0.0
MOVB 9, SMB30 //0口"9600,N,8,1"
LD SM0.0 //RCV指令初始化
MOVB 16#D4, SMB87
MOVB 本站PLC地址, SMB88
MOVW +6, SMW90 //对于9600bps,起始间隔时间为6ms
MOVW +6, SMW92 //对于9600bps,结束间隔时间为6ms
MOVB 最大字符数, SMB94
R SM87.2, 1

LD SM0.0
ATCH RCVcomplete, 23 //连接口0接收完成的中断

LD SM0.0
ATCH XMTcomplete, 9 //连接口0发送完成的中断

LD SM0.0
ENI //中断允许

以上是根据斑竹指点所做的MODBUS-RTU初始化子程序:
有以下几个问题还请斑竹指点:
1.既然MODBUS-RTU是以3.5个字符间隔为起始条件的,已经为SMW90送了时间,为何还要使能SMB88来检测起始信息.另SMW90,SMW92有是如何工作和清零的,PLC是如何检测空闲状态的.
2.当检测到SMB86,出现接收出错时,是否需复位RCV指令,R M87.7 1,待发送错误信息后在发送完成中断中再使能RCV指令,另
LD SM0.0 //停止端口0的接收
R SM87.7, 1
RCV VB100, 0
与 R M87.7 1两者效果是否一样!
请斑竹解答.谢谢!!!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33290条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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