热门搜索:
西门子6ES722 21BD220XA0
上海朕锌电气电气设备有限公司
SIEMENS西门子PLC程序丢失通常是由于接地不良接线有误、操作失误和干扰等几个方面的原因造成的:
1、PLC 主机及模块必须有良好的接地。
2、主机电源线的相线与中性线必须接线正确。
3、预先准备好程序包,用作备份。
4、使用手持编程器查找故障时,应将锁定开关置于垂直位置,拔出就可起到保护内存的功能。
5、由于干扰的原因造成PLC程序丢失.其处理方法可参照PLC受干扰引起故障的处理。
需求:
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秒。
当发生掉站时,相当于站数变少了,轮询周期按正常通信计算。
另:关于做主站时**级的处理的一点想法:
主站通信,一般是 发送---接收 的过程。发送完成了,从站可能会做出响应,在等待时间内一般不会重发,以避免冲突,这构成一个前提条件。
如果需要考虑**级处理,可以在中间加几个**级的判断条件:
常规的: 发送-----接收 发送-----接收
加入**级的:
发送------接收 (较高**级队列判断) (次高**级队列判断) 发送---接收
即 任何一次接收指令结束(或者**时结束),进行下一次常规轮询前,先判断**级队列中的任务,按**级等级分别建立队列,逐级判断。