欢迎来到巨控湖南分公司|长沙聚控电子科技有限公司!

联系我们
·地址:长沙星沙镇天华南路银河大厦
·电话/微信:15307483969 王工
·邮箱:54150175@qq.com

巨控GRM530/GRM230远程控制模块逻辑控制编程指南【长沙聚控】

 

一. 基础知识

    巨控GRM230/GRM530模块内置事件控制和定时器编程,通过巨控GRMDEV5软件配置逻辑控制程序,可以完成各种定时,条件,
顺序控制,实际上巨控模块可以做为一个PLC使用。
 

表达式

巨控GRM230/GRM530模块逻辑编程控制表达式是一个C语言的数值表达式,语法符合标准C语言规范,是C表达式的子集。表达式
可以是单个变量名,也可以是常量,还可以是变量和操作符的运算式。
本产品支持条件表达式、参数表达式和赋值表达式。
  1. 条件表达式:用于报警触发条件、定时执行条件和事件触发条件中,表达式计算结果非0表示条件成立。
例如:(温度>20&&湿度>50)||开关1
  1. 参数表达式:用于短信报警和短信查询回送信息模板中,计算结果与类型有关。
  2. 赋值表达式:用于短信写变量、短信控制命令和事件控制中。
操作符
本系统支持以下几种常用的操作符,手册中未提到的操作符(如++,--)不被支持
操作符 类型 示例 说明
+ 算术运算符 a+b 加法
- 算术运算符 a-b 减法
* 算术运算符 a*b 乘法
/ 算术运算符 a/b 除法
% 算术运算符 a%b 取模
比较操作符 a>3 大于
比较操作符 a<b 小于
>= 比较操作符 a>=b 大于等于
<= 比较操作符 a<=b 小于等于
== 比较操作符 a==b 相等
!= 比较操作符 a!=b 不相等
&& 逻辑操作符 a&&b 逻辑与
|| 逻辑操作符 a||b 逻辑或
~ 位操作符 ~a 按位取反
^ 位操作符 a^b 按位异或
& 位操作符 a&b 按位与
| 位操作符 a|b 按位或
单目操作符 !a 逻辑取反
- 单目操作符 -1 产生操作数负值
() 括号操作符 (a-b)*c 改变运算顺序
= 赋值操作符 a=3 赋值操作
       
 
  • 注意:操作符双等号“==”和单个等号“=”两者区别。
变量=5,是赋值表达式,执行后变量的值改变为5.
变量==5,是比较操作,判断变量是否等于5,若等于5,条件为真(1).
 
 
操作符的优先级别如下:
操作符 优先级别
-(单目),!,~
 




 
 
*, / ,%
+,-
<, >,<=,>=,= =,! =
&,|,^
&& ||
=
  •     注意:建议使用括号来明确优先级 如:
(风机1故障||风机2故障)&&(温度>50
 

表达式举例

  1. 多个条件同时成立,符号&&表示2个条件需要同时成立。
风机1故障&&风机2故障
  1. 任何一个条件成立,,符号||表示2个条件只需要满足一个。
风机1故障||风机2故障
  1. 组合条件判断
(风机1故障||风机2故障)&&(温度>50
以上表达式表示 任何一个风机故障而且温度>50 时成立
 
 

定时器

GRM230支持间隔定时器、每日定时器和星期定时器三种定时器。定时器可以实现定时发送查询短信,也可以实现定时给变量赋值。

  1. 定时器类型
间隔定时器:始终按指定间隔周期执行定义的动作。
如:上图表示,在压缩机==1成立后,过一分钟后,开始第一次执行下面写变量的操作,然后每过一分钟重复一次。
每日定时器:每日指定的时间段内(开始时间至结束时间)按指定间隔周期执行定义的动作。
星期定时器:每周若干天内的指定时间点(开始时间)执行一次定义的动作。
 
 
  1. 执行条件
是一个条件表达式,当表达式计算结果非0时才执行定时器定义的动作。
  1. 定时间隔
连续执行动作之间的时间间隔。
  1. 触发短信查询
在完成赋值操作后,发出一条已定义的查询短信,短信发送给该查询授权的所有用户。
  1. 定时执行内容
定时器执行的动作可以是向用户发送一个查询信息,也可以是给变量赋值。
 
如下图:
表示每天上午9:00触发一次查询,然后10:00触发一次查询,一直到下午17:00触发最后一次查询。

 
 

事件控制


 
  1. 触发表达式
触发表达式是一个条件表达式。计算结果非0表示触发条件成立。
  1. 触发模式
表达式为真,触发1次:触发条件成立时仅执行一次事件动作。
表达式变化触发:变量值变化时执行事件动作。该类型事件会在系统启动时先执行一次。
表达式为真,周期性触发:触发条件成立时先执行一次,然后按周期性执行事件动作。
  1. 触发延时
仅对“表达式为真,触发1次”事件有效。在设定时间内,如果触发条件一直成立,GRM230执行事件动作1次。
  1. 触发周期
仅对“表达式为真,周期性触发”事件有效。触发条件成立时,系统每隔设定时间执行一次事件动作。第一次事件动作是在触发条件成立时立即执行。
  1. 触发查询
在完成赋值操作后,发出一条已定义的查询短信,短信发送给该查询授权的所有用户。
  1. 事件执行内容
变量赋值操作。一个事件控制最多允许修改4个变量。
 
 
 
 

高级事件控制

高级事件控制实质上是多个事件控制的组合,和前面的使用方法并无区别。
使用高级事件控制可以减少模块程序里面事件控制的数量,增强可读性:
如下二个单独的事件控制:

 
可以使用一个高级事件控制完成:

 

 二. 简单例子

简例1:根据输入开关,启动电机

要求开关1闭合,电机输出,开关断开,电机断开

 
  •  注意: 左边的事件控制只会在开关闭合时,执行一次,让电机启动,并不会在开关断开为0时,             
  • 关闭电机,需要右边的事件控制实现关电机。
也就是说执行方式和PLC编程的置位复位指令类似,而不是线圈和触点。
 

 简例2:根据温度启动停止风机

启动风机逻辑如下:
要求  温度>设定温度,启动风机。用事件控制实现如下图

 
  • 注意: 这个事件控制只会在温度>温度设定 时,执行一次,让风机启动。
并不会在温度<温度设定时,关闭风机,需要另外用事件控制实现关风机。
              也就是说执行方式和PLC编程的置位复位指令类似,而不是线圈和触点。
关闭风机的逻辑如下:
温度<设定温度-5度 30秒,关闭风机。用事件控制实现如下图:

 
计算风机运行时间:
要求在风机运行时,计算风机运行时间,单位是秒。
用事件控制实现如下图,风机运行时,每秒钟执行一次 运行时间的计数。

 

简例3:每周定时开关机

周1到周5每天早上8:30 打开空调,每天下午17:30关闭空调。

  • 注意:周一到周五的开机和关机逻辑是由上图2个独立的定时器分别执行的。
周末整天都需要关闭空调,配置方法如下:

  • 注意:因为模块通电运行时刻是不一定的,所以使用上图的每日定时器,在时间段内每秒钟检查一次当前时间是需要开空调还是关空调,可以确保正确的逻辑
 如果使用下图的星期定时,因为是每天仅在8:30检查一次是否需要开启空调,如果模块是8:30之后通电运行,当天的空调启动不会执行。

 

 三. 完整控制逻辑案例

案例1: 冷库控制逻辑

运行逻辑:
1.    当冷库温度>=设定温度+温度偏差  且持续 200秒 时,压机开启,制冷。
2.    当压机开启后,经过风机延迟时间,开启风机。
3.    当冷库温度<=设定温度,压机将关闭。风机关闭。
 
停机逻辑:
按下停机,关闭风机和压机。
 
故障逻辑:
当压机故障输入或者错缺相闭合时,关闭风机,压机。报警输出闭合。
 
具体实现请参考 Sample目录下:冷库控制逻辑.grmprj
全部使用事件控制和高级事件控制实现。
 

案例2:液位控制水泵

自动运行逻辑:
1.    当液位<=设定液位底限,启动水泵,有2个水泵,要求轮换启动
2.    当液位>=设定液位高限,停止水泵
 
手动运行逻辑:
可远程手工启停任何一个水泵,不受液位控制。
 
故障逻辑:
当电源输入错缺相闭合时,关闭水泵。
 
具体实现请参考 Sample目录下:液位控制水泵.grmprj
全部使用事件控制和高级事件控制实现。