回复:25楼

芳季

西门子1847工业学习平台

  • 帖子

    15604
  • 精华

    102
  • 被关注

    966

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2016-12-17 16:05:30

26楼

展开查看
以下是引用ijk在2016-12-17 12:42:35的发言 >

全部程序只有唯一一个msg指令的这种结构?——是的

波特率只支持9600跟19200

现在存在的两个问题都被芳季大大说中了

  1. 循环

    先说地址自加:addr要+2、dataptr要+4 这两个加法计数可以并联起来吗?感觉这样写不对

    在地址自加后,后面紧跟着msg指令就行了?


  2. 读写模式的切换用加计数器的复位来实现?就像西门子主站程序的案例那样 见附件

    modbus master polling.zip

    有没有别的方法?

  3. 是不是即便用了循环,读写过程还会像现在这么慢?

    其实只有测量的温度值需要一直读取,剩下的参数都是在上电的时候先设置好了,等以后需要修的时候才会读写。如果这样的话程序的执行速度会大幅度提高吧。应该怎么实现这种功能呢?


我是用类似步的动作做的。判断什么条件就跳过什么操作。有读请求的时候接通某个点位,执行读发出读信息,不接通的点位,将跳过这条读信息。写的话,当检测到内容有变化的时候发出一次写信息,写完之后这内容就与记忆的一样了,下一个轮训周期自然不触发写了。

这一系列42条信息下来,这些条件,就成为我最大的苦恼。非常多的点位需要人工分配地址。于是,产生了我8楼的话。

当我踏出这一步的时候,后面相应产生了很多问题。能意料到是什么问题不?

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33274条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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