一. 基础知识
巨控模块配置软件 GRMDEV,内置事件控制和定时器编程,可以完成各种定时,条件,顺序控制,数据处理和转发,实际上巨控模块可以做为一个PLC 或者数据协议网关使用。
该说明书适合巨控GRM 模块的全部型号(GRM 500 ,GRM200,GRM230 GRM530 GRM110 等)。
表达式
表达式是一个 C 语言的数值表达式,语法符合标准 C 语言规范,是 C 表达式的子集。表达式可以是单个变量名,也可以是常量,还可以是变量和操作符的运算式。
u 条件表达式:用于报警触发条件、定时执行条件和事件触发条件中,表达式计算结果非 0 表示条件成立。
例如:(温度>20&&湿度>50)||开关 1
u 参数表达式:用于短信报警和短信查询回送信息模板中,计算结果与类型有关。
u 赋值表达式:用于短信写变量、短信控制命令、定时器和事件控制中。
操作符
本系统支持以下几种常用的操作符,手册中未提到的操作符(如++,--)不被支持。
%注意:操作符双等号“==”和单个等号“=”两者区别。
变量=5,是赋值表达式,执行后变量的值改变为 5.
变量==5,是比较操作,判断变量是否等于 5,若等于 5,条件为真(1).
操作符的优先级别如下
注意:建议使用括号来明确优先级如:
(风机 1 故障||风机 2 故障)&&(温度>50)
表达式举例
1) 多个条件同时成立,符号&&表示 2 个条件需要同时成立。
风机 1 故障&&风机 2 故障
2) 任何一个条件成立,,符号||表示 2 个条件只需要满足一个。
风机 1 故障||风机 2 故障
3) 组合条件判断
(风机 1 故障||风机 2 故障)&&(温度>50)
以上表达式表示任何一个风机故障而且温度>50 时成立
定时器
GRM 模块支持间隔定时器、每日定时器和星期定时器三种定时器。定时器可以实现定时发送查询短信,也可以实现定时给变量赋值。
u 定时器类型
间隔定时器:始终按指定间隔周期执行定义的动作。
如:上图表示,在压缩机==1 成立后,过一分钟后,开始第一次执行下面写变量的操作,然后每过一分钟重复一次。
每日定时器:每日指定的时间段内(开始时间至结束时间)按指定间隔周期执行定义的动作。
星期定时器:每周若干天内的指定时间点(开始时间)执行一次定义的动作。
u 执行条件
是一个条件表达式,当表达式计算结果非 0 时才执行定时器定义的动作。
u 定时间隔
连续执行动作之间的时间间隔。
u 触发短信查询
在完成赋值操作后,发出一条已定义的查询短信,短信发送给该查询授权的所有用户。
u 定时执行内容
定时器执行的动作可以是向用户发送一个查询信息,也可以是给变量赋值。
如下图:
表示每天上午 9:00 触发一次查询,然后 10:00 触发一次查询,一直到下午 17:00 触发最后一次查询。
也就是每隔 1 小时发出一条短信,如果模块上电时间是 9:30,那么第一条短信会 10:00 发出。
事件控制
u 触发表达式
触发表达式是一个条件表达式。计算结果非 0 表示触发条件成立。只填入数字“1”,表示为真执行。
u 触发模式
表达式为真,触发 1 次:触发条件成立时仅执行一次事件动作。
表达式变化触发:变量值变化时执行事件动作。该类型事件会在系统启动时先执行一次。表达式为真,周期性触发:触发条件成立时先执行一次,然后按周期性执行事件动作。
u 触发延时
仅对“表达式为真,触发 1 次”事件有效。在设定时间内,如果触发条件一直成立,GRM 模块执行事件动作 1
次。
u 触发周期
仅对“表达式为真,周期性触发”事件有效。触发条件成立时,系统每隔设定时间执行一次事件动作。第一次事件动作是在触发条件成立时立即执行。
u 触发查询
在完成赋值操作后,发出一条已定义的查询短信,短信发送给该查询授权的所有用户。
u 事件执行内容
变量赋值操作。可以写入多行,注意是事件触发的时候,将右边的变量值或者计算表达式,复制给左边的变量。
高级事件控制
高级事件控制实质上是多个事件控制的组合,和前面的使用方法并无区别。使用高级事件控制可以减少模块程序里面事件控制的数量,增强可读性: 如下二个单独的事件控制:
要求错缺相或者压机过载任何一个条件成立时,关闭风机,压机,输出故障。没有任何报警输入时,取消报警输出
可以使用一个高级事件控制完成:
二. 简单例子
简例 1:根据输入开关,启动电机
要求开关 1 闭合,电机输出,开关断开,电机断开
%注意:左边的事件控制只会在开关闭合时,执行一次,让电机启动,并不会在开关断开为 0 时,关闭电机, 需要右边的事件控制实现关电机。
也就是说执行方式和PLC 编程的置位复位指令类似,而不是线圈和触点。
简例 2:温度显示修正
PLC 里面获取的测量温度和实际有偏差,要求 APP 上显示的温度加以修正,可以在模块数据词典里面把测量温度的网络读写属性取消,APP 只显示修正后的值,不显示原始值。
简例 3:根据温度启动停止风机
启动风机逻辑如下:
要求温度>设定温度,启动风机。用事件控制实现如下图:
如前所述,如下配置会在温度>温度设定时,打开风机,温度<=温度设定时不会关闭风机。
如果希望设定温度作为参数,掉电后模块依然保存上次设定值,数据词典里面勾选上保存值即可
关闭风机的逻辑如下:
温度<设定温度-5 度 30 秒,关闭风机。用事件控制实现如下图:
注意,需要在 30 秒内持续满足条件温度<设定温度-5 度才会执行,
计算风机运行时间:
要求在风机运行时,计算风机运行时间,单位是秒 。
用事件控制实现如下图,风机运行时,每秒钟执行一次运行时间的计数
简例 4:每周定时开关机
周 1 到周 5 每天早上 8:30 打开空调,每天下午 17:30 关闭空调。
注意:周一到周五的开机和关机逻辑是由上图 2 个独立的定时器分别执行的。周末整天都需要关闭空调,配置方法如下:
注意:因为模块通电运行时刻是不一定的,所以使用上图的每日定时器,在时间段内每秒钟检查一次当前时间是需要开空调还是关空调,可以确保正确的逻辑。
如果使用下图的星期定时,因为是每天仅在 8:30 检查一次是否需要开启空调,如果模块是 8:30 之后通电运行,当天的空调启动不会执行。
三. 完整控制逻辑案例(W-X 188-264-37-096)
案例 1:冷库控制逻辑
运行逻辑:
1. 当冷库温度>=设定温度+温度偏差且持续 200 秒时,压机开启,制冷。
2、 当压机开启后,经过风机延迟时间,开启风机。
3、当冷库温度<=设定温度,压机将关闭。风机关闭。
停机逻辑:
按下停机,关闭风机和压机
故障逻辑:当压机故障输入或者错缺相闭合时,关闭风机,压机。报警输出闭合。
案例使用巨控GRM232Q-4D4N4Q,输入输出全部使用模块本机 IO 资源,将模块当PLC 使用。
具体实现请参考Sample 目录下:冷库控制逻辑.grmprj 全部使用事件控制和高级事件控制实现。
Sample 目录下还提供了一个稍微复杂的冷库控制案例供参考 :复杂案例.grmprj。
案例 2:液位控制水泵
自动运行逻辑:
1. 当液位<=设定液位底限,启动水泵,有 2 个水泵,要求轮换启动
2. 当液位>=设定液位高限,停止水泵
手动运行逻辑:
可远程在APP 上手工启停任何一个水泵,不受液位控制。
故障逻辑:
当电源输入错缺相闭合时,关闭水泵。
具体实现请参考 Sample 目录下:液位控制水泵.grmprj 全部使用事件控制和高级事件控制实现。lw
评论
查看更多