求助!利用CP341做MODBUS轮询问题

已锁定

chaos1558

  • 帖子

    27
  • 精华

    1
  • 被关注

    14

论坛等级:游士

注册时间:2017-01-16

普通 普通 如何晋级?

求助!利用CP341做MODBUS轮询问题

730

2

2017-07-26 16:09:12

硬件平台:S7-300、CP341(配有主站狗)、12个工业设备

软件环境:博图V14,MODSIM32、

参考文档:CP341使用TIA Step7 V13进行Modbus通讯

 

        

我的项目是要与12个工控设备做MODBUS RTU通信,CP341是主站。本来我想用CPU的时钟来轮询,但是觉得这样效率不高,因此采用发送完成标志位DONE来出发下一个发送块的执行。我在调试的时候没有用实际的工控设备,而用的modbus从站仿真软件MODSIM32。我写的轮询程序中有两个发送块,一个接收块:



按理来说这段程序的运行效果是,我先触发first_req为1,第一个发送块发送指令,待发送完成后,first_Done产生一个脉冲,会触发第二个发送块,然后两个发送块轮流发送指令。

可是我实际运行的结果是先手动触发first_req为1,第一个块发送成功,first_done也却是产生了一个脉冲,并置位second_req,启动了第二个发送块发送,但是第二个发送块应该是没有发送成功,没有产生second_done脉冲,程序就停在那里了。必须手动将second_req复位,再置位,第二个发送块才发送一次,但是第一个发送块有卡在那里。难道是时间太快了,模块没反应过来?是不是还要调整轮询速度呢?怎么调呢?



求助!利用CP341做MODBUS轮询问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54619条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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