回复:s7-1200modbus通信,繁忙位置1了

yming

西门子1847工业学习平台

  • 帖子

    23200
  • 精华

    881
  • 被关注

    1254

论坛等级:至圣

注册时间:2004-03-06

钻石 钻石 如何晋级?

发布于 2018-04-28 12:43:57

5楼

在1200中使用,与200中使用完全不同。200是使用它自己本体的自由编程的端口。而1200则使用CM 422/485模块。记住,西门子所有CM模块都是自己处理通讯的,它有自己的缓冲区。运行中,PLC CU(控制单元)只是与CM打交道,交换存取读写缓冲区数据而已。它不占用CU本体的连接。也不需要CU"操心"。

每次交换数据,都需要一个REQ的上升沿(可以是一个扫描周期的“脉冲”,也可以持续置一直到DONEERROR置一为止。)

至于 重发、周期等等 都是组态时设置。

理论上说,假定从站有不同的通讯要求,也可以在运行中,改变初始化参数的。(只要完成通讯、暂停通讯时,顺序合理。)

如果理解了1200的CM通讯结构,程序就很好写了。

可以用“最快”方式,随时监控DONEERROR(只需保持EN=1),当DONEERROR出现,就处理通讯响应,一次。这当然会出现 BUSY状态啦。

也可以用 循环周期中断来写,根据波特率、重发次数的设置(有表可查),放在循环中断中处理数据的交换。这种方式好处是,平时不占用CU扫描时间,CU只处理其他事物。也看不见BUSY。

在这里,要记住的是,所有一切都是在 REQ上升沿的那个周期,与CM交换数据的(包括地址等等)。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15228条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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