SIEMENS PLC S7-300 项目经验 01

SIEMENS PLC  S7-300 项目经验 01

项目名称: ** 福特汽车,涂装改造项目,输送系统改造!

项目中建立的 功能块,可移植到其他项目中,直接使用!

软件平台:  STEP7 V5.5 SP4 HF11

油漆车间,输送改造项目,新增CC013区域,新增功能块介绍。

 

  1. CC07 – FB902  特殊车型检测 功能块

功能块从IS读写站获取车型 ASCII码,转换新的车型代码,再从颜色识别传感器获得信号状态,转换成新的车型代码,这两种车型代码在功能块内部进行比较,并输出比较结果。同时把每一次触发的报警附加信息记录下来,压入存储队列,队列中保存了最近的1-900次以内的报警记录,例如队列报警记录设置为100,当第101次触发报警,则第1次发生的报警被弹出队列,存储到队列的出口Outlet,报警记录存储的是一个UDT结构体。当发生第102次报警时,则存储在出口Outlet的第1次报警记录被第2次报警覆盖,以此类推,循环覆盖下去。注意:队列的计数器最大到100就不增加了,但队列的内容每一次报警触发,都会被更新,也就是队列的所有元素往后移动一位。

FB902 调用截图如下:

 

 

 

 

  1. 功能块介绍:输入输出管脚参数定义

  1. 其中FB902 块中的 FC500 功能块更新了新版,调用如下:

注意下图中红色圈中的参数时新增加的,单队列中的记录达到设定计数“iDBSizeOfAll”后即为元素满了,输出参数“OutQueueFull”变为 “1”.

当元素满后,再增加一个元素则,所有元素往后移动一位,第1个元素被移动到“OutpAnyPopupElem” 输出参数,也就是元素满了 弹出Popup到出口. 当再有元素弹入队列,则第2个元素被弹出到“OutpAnyPopupElem” 输出参数,把原来存储的元素覆盖。

特别注意: AnyNewData 这个输入参数,必须要指定一个Struct 变量类型首地址。因为每个元素(单个数据集)长度(字节数)通过ANY 指针获得,不能直接给变量名(可以指定为Struct 变量名)。

 

  1. 增加了FB901 保存报警记录 功能块、
  1. CC07- FB901 功能块是用于存储特殊报警记录,并保存和报警记录相关的关键信息,为了客户查询故障,和追溯故障提供方便。

报警信号为BOOL 开关信号,当信号被触发时,功能块从IS 读写站块中获取当前读取到的车型信息,一般为 -0 – 200 字节 ASCII 码! FB901 功能块对ASCII 码进行转换,获得若干段 字符串,这些字符串保存了车型关键信息,例如: VIN码,车型代码, 底漆计数,面漆计数等等。 把这些信息保存到一个自定义的结构中,这个结构有96个字节组成,当报警信号触发时,把这个结构信息当一个元素保存到一个队列中,这个队列在FB901功能块内部,队列最大保存600个元素,也就是最大保存最新的600条报警记录,可供客户随时查看。FB901功能块生成的背景数据块很大,一般有效的报警记录数设置为200 以下。 当超过200个记录时,会增加PLC CPU 负担,导致CPU扫描周期加长。需要注意

功能块调用如下:

 

 

  1. FB901 功能块参数介绍

InRBOcc             :  滚床站位信号

InDetectDone        : 报警信号触发发生

InRecordAct          :  报警记录激活,默认激活状态

InRepeatTrigg        : 报警记录被重复触发,当为“1“时,强制复位内部信号!防止多次触发,以保障每一次触发,之记录一次报警信息

InAlarm1 – InAlarm10  :  报警触发信号,最多可填10个报警信号,当“InRBOcc”和” InDetectDone“ 信号同时为“1“时,标识报警触发条件满足,此时检测InAlarm1 – InAlarm10 管脚10个报警信号状态,当遇到某个信号状态为“1“ 时把对应的续写站获取的车型信息 压入队列中保存起来,注意:一次可保存10种不同报警记录,不过每一个记录触发逻辑要在功能块外部写例如 当发生InAlarm1 报警时 ,事先把此警对应的IS 读写站获取的车型信息保存到“InAUXInfo” 结构体中,然后再触发” InDetectDone“ 信号。注意下图中的红圈中,报警触发完成前给功能块参数赋值,“InAUXInfo”参数中保存IS 读写站车型信息,“DB**.di1Alarm1TextID” 内部参数中赋值对应的报警ID号。此ID 用于HMI画面中对应的报警文本列表,事先定义好的。

InRecordEleQty        :  报警队列有效数量,0-600 ,最大设置为600 ,一般设置为100 ,因为设置太大会占用PLC CPU资源。

InAUXInfo                : 特殊报警附加参数信息,一般为IS 读写站获取车型信息,自定义结构

OnRecordDone            : 报警记录完成信号

OnRecordCount            :  当前报警记录的计数,当达到设置的有效数量时,一直显示最大有效计数,例如“InRecordEleQty”参数 设置为100,当第101次报警触发,计数器同样显示100,只不过内部所有元素向后移动一位,第一个元素被移除覆盖。

OnAlarmType          :发生报警的类型代码

OnAlarmTextNo        : 最后一次发生报警 对应的报警文本ID 号

  1. FB901 功能块对应的 HMI中获取报警文本,采用间接寻址,VB脚本代码获取报警附加信息。
  2. 报警记录查看画面

 

 

 

 

 

新增加的脚本,变量定义:

间接寻址 DB变量定义:

 

报警查询记录画面 载入事件 调用脚本AF_WindowLoading(),初始化

报警查询记录画面 翻页查询事件 调用脚本bntNextPage(),初始化

报警查询记录画面 每一项查询事件 调用脚本Page_Show_Record1-20(),每页可显示20项报警记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值