绘制低代码流程
使用Janus边缘计算系统绘制流程图
创建流程
点击左侧选择控制器或工位分支,点击流程列表中 创建流程
按钮,编辑基本流程信息,完成后点击确认完成创建流程。
- 名称:为该流程命名一个名称,以便信息维护识别;
- 类型:可选
主流程
和子流程
; - 备注:该流程的备注信息,选填。
- 当一个流程较复杂时,我们可将其拆分为一个主流程和一个或多个子流程来制作,主流程可以通过调用子流程来达到简化的目的,以便更好地理解。
- 在主控制系统运行时,系统的主程序和子程序是同时进行的。子流程可以嵌套在主流程里执行,而主流程不可以嵌套在子流程执行。
设置分组
流程分组可以把新建的流程放在相应的项目下,方便查找以及编写。
在左侧分支栏选择控制器、工位分支或子分组,点击右侧 增加分组
按钮,填写分组名称,点击 确认
即可在对应分支下创建分组。
绘制流程图
完成创建后,在流程列表中找到已创建的流程项点击 设计
,进入流程设计页面。
在流程编辑界面拖拽左侧功能块即可添加功能块到编辑区。
鼠标双击功能块的文字/图标,或选中功能块后按键盘 F2
,可编辑功能块注释。
为了流程报警时显示信息、定位问题,建议你在流程设计开发过程中为功能块添加便于识别理解的注释。
流程编辑界面包含了13 种类型的功能块——开始、选择、子流程、条件赋值、结束、设置变量、延时、等待、点位运动、连续运动、批量设置变量、计时器、写字符。以下将对各个功能块的含义进行详细介绍。
低代码功能块
开始
为流程开始标志,不管是主流程还是子流程都是必不可少的,放在流程开始位置。
选择
选择功能块:当流程需要进行判断时使用,与后续模块连接时会出现 ⚙ 按钮,点击可设定执行条件。
在流程编辑页中点击选择流程分支线段上的 ⚙
按钮,进入设定条件窗口。
满足条件执行绿色线条方向流程,否则执行红色线条方向流程,红色线条流程无需设定条件。
编辑选择条件表单,完成后点击 确认
。
- 选择
判断运算符
:可设定一组或多组条件(逻辑与/或),逻辑与
表示设定的多组条件需要同时成立才会走绿色线条部分流程,逻辑或
则表示设定的多组条件只要有一组成立即可走绿色线条部分流程; - 点击
添加一行
添加变量判断条件; - 变量:变量栏中选择需做判断的变量ID;
- 操作符:操作符有六种选择,分别是
等于(=)
、大于(>)
、小于(<)
、大于等于(>=)
、小于等于(<=)
、不等于(≠)
; - 操作数为变量:若选择,则表示操作数是变量;若不选择,则表示操作数是单纯的数值。
如上图所示,1 是1 号输入点变量,代表的是启动按钮。若变量里存的数值等于1,则此选择功能块走绿色线条部分流程,否则走红色线条部分流程。
子流程
当一个流程较复杂时,我们可将其拆分为一个主流程和一个或多个子流程来制作,主流程可以通过调用子流程来达到简化的目的,以便更好地理解。
前置工作:在创建流程时选择子流程并编辑功能块并保存。
在主流程中添加子流程模块,点击功能块右上角
⚙图标
。
- 选择已经制作的子流程。
条件赋值
输出前条件限制,满足条件时才可以输出,一般用于产线的气缸互锁,点击 ⚙图标 可设置变量输出之间的限制关系。
如下图示例所示,条件赋值的逻辑运算为:如果变量ID3111==0&&变量ID11509==1 两个条件同时成立,即为真,则数据栏位1001(变量ID1001)就会成功赋值1,即ID1001==1;如果变量ID3111&&变量ID11509 两个条件有一个条件不成立,即为假,则数据栏位1001(变量ID1001)就会失败赋值0,即ID1001==0。
结束
结束功能块为流程结束标志,放在流程结束位置。
- 子流程中结束功能块为必须放置的功能块;
- 主流程要根据情况而定:若主流程是无限循环的,则主流程可以没有结束功能块标志;若程序只执行一次就结束,则需要在流程中添加结束功能块。
设置变量
设置变量功能块:用于变量运算,点击功能块图标右上角 ⚙图标,可设置变量之间的运算关系。
设置项说明:
- 变量ID: 一般用于
1#操作数
和2#操作数
的运算结果赋值给变量ID
; - 操作码:可选择
0(赋值)
、1(加)
、2(减)
、3(乘)
、4(除)
运算。用于对1#操作数
和2#操作数
进行运算; - 1#操作数:输入数值或变量值,与
1#操作数是变量
对应使用。 - 2#操作数:输入数值或变量值,与
2#操作数时变量
对应使用。 - 1#操作数是变量:1#操作数为 变量ID 时,1#操作数是变量中选择
启用
;1#操作数为 数值 时,1#操作数是变量中选择停用
; - 2#操作数是变量:2#操作数为 变量ID 时,2#操作数是变量中选择
启用
;2#操作数为 数值 时,2#操作数是变量中选择停用
; - 变量为地址:若启用,则该功能块内的变量都为变量地址;若停用,则该功能块的变量都为变量;(注意:所谓的变量取地址,则变量里的数值也为变量,数值里的值才是变量的数值)
- 变量ID 延时时间(秒):给
变量ID
输出前加一个延时时间,作用等效于延时功能块; - 结果是共享变量:若启用,则
变量ID
成为共享变量; - 操作数是共享变量:若启用,且
1#操作数
和2#操作数
都为变量时,则1#操作数
和2#操作数
变成共享变量。
共享变量可以看做是变量本身的一个分身,比如变量ID4001存的数值是10,当变量ID4001是共享变量时,变量ID4001可以存别的值,比如20。变量ID4001与共享变量ID4001两者互不影响,可以看成是两个不同的变量。共享变量一般用在多个系统中的信息交互。
下面以变量为地址设置为停用
,结果是共享变量设置为停用
,操作数是共享变量设置为停用
,举例如下图所示:
变量自加1运算逻辑为:变量ID4001存的数值=变量ID4001里存的数值+1,当此设置功能块每次运行一次则该变量里存的数值会自加1。若变量ID里存的数值为2,则此时变量ID4001里存的数值为3。
延迟
用于需要延时的流程中,设置延时时间,时间单位为秒(S)。点击延时功能块图标右上方 ⚙图标 可对延时时间变量进行设置。
延时变量ID里存的数值可以在数据初始化时对变量ID进行赋值,变量ID里存的数值才是需要的延时时间。
(注意:这里2001为1S,是因为在数据初始化时对该变量赋值为1)
等待
指在等待规定的时间内满足执行条件方可进行下一流程。如果在设置的条件内等待不到满足的执行条件,则该功能块会报警,报警信息为该等待功能块注释的内容。点击等待功能块图标右上方 ⚙图标
的可对该功能块进行设置。
设置示例如下图所示,如果变量ID196在3S的时间内等待不到196=1,则该功能块会报警,系统会报错。当等待时间设置<=0 时,则该变量ID196 会一直等待196=1,不会有报警信息,系统不会报错,直到执行条件被满足时,才会进入下一流程。
注意等待时间要根据实际设计,不能一直等待,也不能只是等待几秒,合理的等待时间会提高我们流程执行的效率。
- 一直等待的缺点就是:如果一直等待不到条件成立,系统会显示正常,且永远不会报错。
- 只等待几秒的缺点是:可能条件成立的时间只是比等待的时间稍微久一点而已,这时系统会一直显示报警,这样子也是不合理的。
- 变量为地址:当设置为启用时,则该等待功能块里的变量都为变量地址,当设置为停用时,则该等待功能块里的变量都为变量,而不是变量地址(注意:所谓的变量取地址,则变量里的数值也为变量,数值变量里的值才是变量的数值);
- 等待数值为变量:当设置为启用时,如上图所示,则等待数值1不是一个数值,而是一个变量,变量1里存放的数值才是实际
变量196
要等待的数值。 - 是共享变量:当设置为启用时,则该等待功能块里的变量都为共享变量,当设置为停用时,则该等待功能块里的变量都不是共享变。
共享变量可以看做是变量本身的一个分身,比如变量ID4001存的数值是10,当变量ID4001是共享变量时,变量ID4001可以存别的值,比如20。变量ID4001与共享变量ID4001两者互不影响,可以看成是两个不同的变量。共享变量一般用在多个系统中的信息交互。
点位运动
用于单轴或者多轴同时进行点位运动。点位运动指的是点与点之间的运动。点击多轴运动功能块图标右上方的 ⚙图标
,可对该功能块进行设置。
示例如下图所示,速率变量ID4083 里存的数值为该轴的运动速率(注意:速率按轴最大速度的百分比计算,速率变量ID4083里存的值的范围为1~100,单位为百分比%)。
例如:速率ID4083=20,该轴最大速度为500mm/s,则速率=20%×500mm/s=100mm/s。
1通道变量ID_轴号选择 1号轴
表示控制1号轴走点位运动。
1通道变量ID_坐标 4074里存的数值为该轴要运动的点位坐标值,当轴为移动轴时,单位为毫米,当轴为旋转轴时单位为度。
(注意:1 通道变量ID_轴号对应1 通道变量ID_坐标
,切不可对应错误。该点位运动功能块目前可以设置6个轴同时进行点位运动,但实际最多可以支持24 个轴同时进行点位运动)
变量ID 加速率:当加速率变量ID默认不设置或者设置跟速率变量ID相等时,则轴的加速率
= 速率变量ID值的百分比
× 轴参数表配置的加速度大小
,例如:加速率ID设置为4083,速率变量ID4083=1,轴参数表里该轴的加速度为2500mm/s2, 则加速率=1% ×2500mm/s2=25mm/s2。当加速率变量ID 设置时或者设置不等于速率变量ID 时,则轴的加速率等于加速率变量ID 里存的值的百分比乘以轴参数表配置的加速度大小。(注意:加速度变量ID里存放的值的大小跟速率一样范围为1~100,单位百分比%)。
变量ID 减速率:当减速率变量ID默认不设置或者设置跟速率变量ID相等时,则轴的减速率
= 速率变量ID值的百分比
× 轴参数表配置的减速度大小
,例如:减速率ID设置为4083,速率变量ID4083=1,轴参数表里该轴的加速度为2500mm/s2, 则减速率=1% ×2500mm/s2=25mm/s2。当减速率变量ID 设置时或者设置不等于速率变量ID 时,则轴的减速率等于减速率变量ID 里存的值的百分比乘以轴参数表配置的减速度大小。(注意:减速度变量ID里存放的值的大小跟速率一样范围为1~100,单位百分比%)。
连续运动
用于单轴进行连续运动。点击连续运动功能块图标右上方的 ⚙图标 ,可对该功能块进行设置。
设置示例如下图所示,速率变量ID3137里存的数值为该轴的运动速率。
速率按轴最大速度的百分比计算,速率变量ID3137里存的值的范围为-100~100,单位为百分比%,负值跟正值代表轴的运动方向相反。
变量ID 轴号 选择4号轴表示控制4号轴做连续运动。
(注意:该连续运动功能块顾名思义只适用于单轴连续运动,类似于JOG运动)
批量设置变量功能块
用于变量数值批量赋值。点击批量设置变量功能块图标右上方的 ⚙ 图标,可对该功能块进行设置。
设置示例如下图所示,写入 起始变量ID
2001,结束变量ID
2010,起始数值
设置为4001,步长
设置为1(步长可根据实际需求设置,步长表示两相邻变量中数值的差值),起始数值是变量
设置为启用,结果是共享变量
设置停用,起始数值是共享变量
设置停用。
经过运算则变量ID2001~2010 里存的数值分别为变量ID4001~4010 对应的数值,例如变量ID4001~4010 里存放的数值都为0,则变量ID2001~2010 里存放的数值对应都为0。
当 起始数值是变量
设置停用时,表示起始数值不是变量,以下面图其它设置不变为例,经过运算变量ID2001~2010 里存放的数值对应为4001~4010。
- 结果是共享变量:当设置为启用时,则变量ID2001~2010 是共享变量,当设置为停用时,则变量ID2001~2010 不是共享变量。
- 起始数值是共享变量:当设置为启用时,则变量ID4001~4010 是共享变量,当设置为停用时,则变量ID4001~4010 不是共享变量。
共享变量可以看做是变量本身的一个分身,比如变量ID5001 存的数值是10,当变量ID5001是共享变量时,变量ID5001可以存别的值,比如20。变量ID5001与共享变量ID5001两者互不影响,可以看成是两个不同的变量。共享变量一般用在多个系统中的信息交互。
计时器
用于记录流程的运行时间,每个流程可以有50个计时器,时间单位是秒(s)。当流程通过计时器模块后即该定时器会置于后台运行,可通过设置变量模块把计时器使能ID置1对计时器使能控制计时器启动计时,也可通过设置变量模块把计时器使能ID置0对计时器下使能控制计时器暂停。(注意:流程停止时暂停计时:当该栏位设置为启用时,流程停止时会暂停计时,流程启动时会继续计时,当该栏位设置为停用时,流程停止时不会暂停计时。)
点击计时器功能块图标右上方的 ⚙按钮 ,可对该功能块进行设置。
设置示例如下图所示,计时器ID
设置为1 变量ID:计时器使能
设置为5001,流程停止时暂停计时栏位设置为启用时,变量ID:计时时间(秒)
设置为5002。
当计时器使能ID5001=1,启动该计时器计时,计时时间会保存在变量ID5002。
当计时器使能ID5001=0,暂停该计时器计时,当流程停止时也会暂停该计时器计时。
写字符
用于对指定变量写入字符,实现设备控制(注意:通常情况下一个英文字符占用1 字节,中文字符占用2 字节,一个系统变量可存放8 字节,考虑到标点符号及编码格式等情况,存入字符将按设定写入对应的变量ID,若字符占用字节数过大将依次写入后续变量中)。
通过TCP连接配置TcpUdp.txt文件完成通讯连接及变量控制地址,即可通过流程设计设置该写字符模块完成对字符串的写入控制。
点击写字符功能块图标右上方的 ⚙按钮 ,可对该功能块进行设置。
设置示例如下图所示,写入字符
填入“测试成功”,设置 写入变量ID
4003,增加回车符(CR)
设置为停用,增加换行符
设置为停用,是共享变量
设置为停用。当流程执行到此功能块时,“测试成功”会写入变量ID4003。
- 增加回车符(CR):表示结果输入时确认输入的执行命令。当该栏位设置为启用时,表示增加回车符。
- 增加换行符:文字处理中起换行的作用。当该栏位设置为启用时,表示增加换行符。
- 是共享变量:当设置为启用时,则变量ID是共享变量。
共享变量可以看做是变量本身的一个分身,比如变量ID5001存的数值是10,当变量ID5001是共享变量时,变量ID5001可以存别的值,比如20。变量ID5001与共享变量ID5001两者互不影响,可以看成是两个不同的变量。共享变量一般用在多个系统中的信息交互。