一个自由口通信编程的实现流程

已锁定

水煮花生

  • 帖子

    209
  • 精华

    3
  • 被关注

    3

论坛等级:侠士

注册时间:2011-04-14

钻石 钻石 如何晋级?

一个自由口通信编程的实现流程

3524

11

2021-02-24 15:52:58

需求:

S7-200smart 通过自由口和2台(多台仪表) 通信。

每台仪表的通信数据:一个过程量(只读),5个参数(读写)。

仪表通信协议:自定义协议,消息字符ASCII码模式,写参数时,无返回消息。

轮询要求:过程量优先读取,最快刷新;参数值定时间隔读取,或者上位机指令读取;参数值有变更需求才写入,

工作情况:读写参数 均通过上位机画面操作,正常不会出现多台仪表同时出现写请求,存在操作上的时间差。

 

构想方案:

公用变量:站地址变量,通信状态变量,重试次数(超时次数上限/超限认为掉站),

          掉站恢复时间(掉站后,重试间隔时间)

独占变量:写请求状态字节(每个站地址建一个变量)

          读请求状态字节(每个站地址建一个变量)

          超时次数(每个站地址建一个变量)

          掉站标志位(每个站地址建一个变量)

*以上“变量”等同于存储地址

 

1,采用站地址轮询策略:

轮询到某个站地址时,先读取过程值,再检查写请求状态字节,是否存在写参数请求,若有,写参数通信,更新读请求状态字节,若没写参数请求,再检查读请求状态字节,是否存在读参数请求,若有,读参数通信,如没有,轮询一个站地址。

即每个站的通信次序为   读过程值--- 写一个参数---读一个参数  。

2,超时处理:

轮询到某个站地址,读过程值或者读参数 返回数据没有超时,该站地址超时次数清零,若超时,该站地址超时次数加1,轮询下一个站地址。

3,掉站处理及重新询站:

某站地址超时次数超过重试次数,判定掉站,掉站标志置位,下次轮询到该站地址,跳过,轮询下一个站地址。掉站后,经过重试间隔时间,掉站标志复位,依次进入轮询。

4,读/写请求状态字节 及读/写处理

状态字节从低位到高位(位0-位4),不用的位均置零,每一位均表示一个参数的读/写请求标志,当状态字节不为0,即表示本站存在读/写请求。

读/写参数时,从低位向高位查检索,查询到第一个“1”位,本次轮询只对这个参数进行读/写。

5,特别的,仪表在接收写参数消息帧时,没有返回消息,因此有写参数时,必须将该参数的读请求标志也置位,同时清除读参数中的其他标志位。即当有写参数请求时,已经存在的读参数标志均需要清零。

 

主要通信流程如下:

通信周期核算:

通过2台仪表的测试,在无读写请求时,9.6k bps 每秒可读过程值20次,读过程值消息帧最长,因此以0.05秒为一次通信典型值,其中写指令时,没有返回数据帧,仅需PLC扫描周期,以0.02秒估算。

正常通信时,假如仅一个站点需要对5个参数进行写操作,轮询周期为[ 0.05+0.02+0.05+0.05*(站数-1) ],共2台仪表轮询周期0.17秒,完成5个参数的写操作,需要的时间0.85秒,共8台仪表轮询周期和写入时间分别为0.47秒和2.35秒。

当一个站发生通信超时但没有判定掉站时,假设超时时间为0.3秒,轮询周期约为0.05*(站数-1) +0.3,共2台仪表时,轮询周期为0.35秒,共8台仪表时,轮询周期为0.65秒。当(站数-1) 站发生通信超时但没有判定掉站时,轮询周期约为0.3*(站数-1) +0.05,共2台仪表时,轮询周期为0.35秒,共8台仪表时,轮询周期为2.15秒。

当发生掉站时,相当于站数变少了,轮询周期按正常通信计算。

 

另:关于做主站时优先级的处理的一点想法:

主站通信,一般是 发送---接收 的过程。发送完成了,从站可能会做出响应,在等待时间内一般不会重发,以避免冲突,这构成一个前提条件。

如果需要考虑优先级处理,可以在中间加几个优先级的判断条件:

    常规的:  发送-----接收      发送-----接收

加入优先级的:

     发送------接收  (最高优先级队列判断) (次高优先级队列判断)  发送---接收

     即 任何一次接收指令结束(或者超时结束),进行下一次常规轮询前,先判断优先级队列中的任务,按优先级等级分别建立队列,逐级判断。



个人浅见,请君指点!

一个自由口通信编程的实现流程 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有7476条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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