ProfControl 低代码编程
Lu
·
创建日期: 2022-05-14 14:39:11
·
2
1
0
65

低代码编程

我们先来看一下效果视频

 

png

 

重新设计与定义低代码编程

在上一版低代码编程的基础以及大家的反馈下,我们重新优化设计了最新版本。在现在版本中,我们希望可以让大部分用户都可以用上并且取代事件以及脚本,用户可以单独使用这个工具在短时间内完成项目,也可以锻炼用户的思维逻辑能力。

 

低代码编程简述(和前一版本类似)

低代码编程应用于项目中,可以通过低代码编程实现以下功能:

         代替脚本的使用,化难为简。

         具有逻辑顺序性。

         简单易上手,对使用者的门槛降低。

         可以实时查看信号的流动性。

         熟悉的用户可以打包复合功能块,给一般用户导入使用。

低代码编程可以随项目启动自动运行或人为控制运行

 

新建项目

png

 

编写

右键鼠标显示功能块,点击对应的功能块即可。 png

 

运行/停止

现在运行只需要添加功能块便可以运行,当想要暂停某个功能块时,可以关闭功能块的触发信号、或者禁用功能块。 png

png

 

功能块

右键跳出功能集合点击对应的功能集合会跳出列表下的功能块。 png

 

功能块的连接与切断

连接功能块时只需从输出引脚拉出线放到输入引脚即可,功能块也可随意拖动。 png

 

组合功能块

组合功能块按住Shift+鼠标左键进行框选,框选完成后右击鼠标进行分组。 png

 

png

 

png

 

锁定/解锁功能块

右键功能块时会跳出锁定/解锁。

 png

 

自定义功能块(导入导出组合功能块)

选中想要导出的功能块,然后点击导出即可导出到本地,点击导入即可将本地的功能块导入到项目中(功能块多的话,可以组合后打包)。 png

 

编程资源

常量

路径常量

路径名称:输入路径。 png

 

站点常量

站点名称:输入站点。 png

 

AGV常量

AGV名称:输入AGV。 png

 

布尔值常量

png

 

浮点数常量

png

 

整数常量

png

 

字符串常量

png

 

变量

定义全局变量,名称一样的变量可随意取出,值都是一样。

          默认初始值:初始的值。

          变量值类型:变量值类型。   png

 

事件

AGV事件

当操作AGV时,会触发一些AGV事件,可以根据这些事件来做一些逻辑处理。

         AGV输入:需要进行操作的AGV(可自定义添加、也可以外部输入AGV对象)。

         事件触发行为:AGV事件类型。

 

到达新站点

AGV到达一个新的站点时触发一次。

         新站点:输出新站点的地标值。

         AGV事件触发信息:当触发 到达站点事件 时,输出一次。

 pngpng

 

开始导航

当AGV开始导航时触发一次。

         AGV事件触发信息:当触发 开始导航 时,输出一次。

pngpng

 

获取下一段路线

开始任务后,会输出当前路线和上一段路线的名称。

         导航新路径:导航到新的路线。

         导航前一路径:现导航路线的前一路径。

         AGV事件触发信息:当触发 获取下一段路线 时,输出一次。

pngpng

 

生成规划路径

当开始生成规划路径会触发一次。

         AGV事件触发信息:当触发 生成规划路径 时,输出一次。

pngpng

 

任务路径计算完成

当生成完规划路径后会触发一次。

         AGV事件触发信息:当触发 任务路径计算完成 时,输出一次。

png

 

到达目标点

到达指定目标点后,触发一次。

         目标站点:导航的目标站点。

         AGV事件触发信息:当触发 到达目标点 时,输出一次。

pngpng

 

AO指令完成

当完成一次AO命令时,触发一次。

         AO命令名称:当前AGV执行的动作名称。

         AGV事件触发信息:当触发 AO指令完成 时,输出一次。

png

 

人工完成/取消任务

当人工进行取消任务时,触发一次。

         AGV事件触发信息:当触发 人工完成/取消任务 时,输出一次。

pngpng

 

取消任务

当任意取消任务时,触发一次。

         AGV事件触发信息:当触发 取消任务 时,输出一次。

pngpng

 

下发自定义命令

当给AGV下发命令时触发一次。

         自定义命令名称:当前给AGV下发的命令名称。

         自定义命令参数:当前给AGV下发的命令参数。

         AGV事件触发信息:当触发 下发自定义命令 时,输出一次。

png

 

通讯单元数据接收

当通讯单元进行一些操作时,会触发一些通讯单元事件,可以根据这些事件来做一些处理。

         通讯单元输入:需要进行操作的通讯单元(可自定义添加、也可以外部输入通讯单元对象)。

         事件触发行为:AGV事件类型。

 

建立连接

当通讯单元建立连接时,触发一次操作。

         触发通讯单元:输出触发的通讯单元。

         通讯事件触发信息:当触发建立连接 时,输出一次。

png

 

断开连接

当通讯单元断开连接时,触发一次操作。

         触发通讯单元:输出触发的通讯单元。

         通讯事件触发信息:当触发 断开连接 时,输出一次。

png

 

接受到原始数据包

当接受到数据包时,便会触发一次操作。

         触发通讯单元:输出触发的通讯单元。

         原始报文输出:输出的原视报文。

         通讯事件触发信息:当触发 接受到原视数据包 时,输出一次。

png

 

接受到通讯协议数据包

当接受到通讯协议包时,便会触发一次操作。

         触发通讯单元:输出触发的通讯单元。

         通讯协议报文输出:输出的通讯协议报文。

         通讯事件触发信息:当触发 接受到通讯协议数据包 时,输出一次。

png

 

信号触发

当进行信号触发时,会触发当前操作

         触发通讯单元:输出触发的通讯单元。

         信号序号输出:当前的信号序号输出。

         通讯事件触发信息:当触发 信号触发 时,输出一次。

png

 

Picture事件

当操作图元时,会触发一些图元事件,可以根据这些事件来做一些逻辑处理。

         Picture输入:需要进行操作的图元(可自定义添加、也可以外部输入图元名称)。

         事件触发行为:图元事件类型。 png

 

鼠标进入图元

当鼠标移动进图元时触发一次。

         触发图元:输出移动进图元的类型名称。

         图元事件触发信息:当触发 鼠标进入图元 时,输出一次。

png

 

鼠标按下图元

当鼠标按下图元时触发一次。

         触发图元:输出按下图元的类型名称。

         图元事件触发信息:当触发 鼠标按下图元 时,输出一次。

png

 

鼠标按下并释放图元

当鼠标按下并释放图元时触发一次。

         触发图元:输出按下并释放图元的类型名称。

         图元事件触发信息:当触发 鼠标按下并释放图元 时,输出一次。

png

 

鼠标离开图元

当鼠标离开图元时触发一次。

         触发图元:输出离开图元的类型名称。

         图元事件触发信息:当触发 鼠标离开图元 时,输出一次。

png

 

索引发生改变

当索引发生改变时触发一次。

         触发图元:索引发生改变的类型名称。

         图元事件触发信息:当触发 索引发生改变 时,输出一次。

png

 

达到最后索引

当达到最后索引时触发一次。

         触发图元:达到最后索引的类型名称。

         图元事件触发信息:当触发 达到最后索引 时,输出一次。

png

 

Road事件

当AGV经过某些路线时,会触发一些路线事件,可以根据这些事件来做一些逻辑处理。

         Road输入:选择路线(可自定义添加、也可以外部输入Road对象)。

         事件触发行为:Road事件类型。

 

AGV驶入路线

当有AGV驶入选定路线时触发一次。

         触发AGV:输出当前驶入路线的AGV。

         触发路线:输出当前的路线名称。

         路线事件触发信息:当触发 AGV驶入路线 时,输出一次。

pngpng

 

AGV驶离路线

当有AGV驶离选定路线时触发一次。

         触发AGV:输出当前驶离路线的AGV。

         触发路线:输出当前的路线名称。

         路线事件触发信息:当触发 AGV驶离路线 时,输出一次。

pngpng

 

Station事件

当AGV经过某些站点时,会触发一些站点事件,可以根据这些事件来做一些逻辑处理。

         Station输入:选择站点(可自定义添加、也可以外部输入Station对象)。

         事件触发行为:Station事件类型。

 

AGV即将驶入

当有AGV驶入选定路线时触发一次。

         触发AGV:输出当前即将驶入站点的AGV。

         触发站点:输出当前的站点名称。

         路线事件触发信息:当触发 AGV即将驶入 时,输出一次。

pngpng

 

AGV驶入站点

当有AGV驶入站点后触发一次。

         触发AGV:输出驶入站点后的AGV。

         触发路线:输出当前的站点名称。

         路线事件触发信息:当触发 AGV驶入站点 时,输出一次。

pngpng

 

流程控制

For循环

可循环遍历列表中的所有对象。

         起始索引:开始定位到第几位。

         终止索引:最终需要定位到第几位。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出。

         项目:当前正在遍历列表中的值。

         遍历结束:是否结束一次完整的遍历流程。

  • png
 

功能函数

触发AGV操作

触发在操作定义中的AGV操作。(顶升下降取消任务等)

         使能:使能信号,通路时才能执行。

         AGV输入:指定某一辆AGV。

         命令字:操作定义中的操作名。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出。

 pngpng

 

AGV锁定

锁定Agv,使其不会被任何操作干扰,请注意锁定一定要配合解锁,否则Agv将无法继续工作

         启用:使能信号,通路时才能执行。

         AGV输入:AGV对象。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出。

png

png

 

AGV解除锁定

解锁Agv,使其可以继续恢复工作

         启用:使能信号,通路时才能执行。

         AGV输入:AGV对象。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

png

png

 

AGV下线

AGV下线并不在站点上显示,不会拥堵其他AGV。

         启用:使能信号,通路时才能执行。

         AGV输入:AGV对象。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

png

png

 

AGV上线

AGV上线并且可以正常运行。

         启用:使能信号,通路时才能执行。

         AGV输入:AGV对象。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

png

png

 

召唤AGV到目标站点

召唤指定AGV到指定站点。

         启用:使能信号,通路时才能执行。

         AGV输入:想要让指定哪一辆AGV过去。

         站点输入:想要去的目标站点。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

png

png

 

改变AGV目标站点动态下一工序号

改变AGV在某个站点去的下一个工序号,不改变当前站点的下一工序号。

         启用:使能信号,通路时才能执行。

         AGV输入:AGV对象。

         站点输入:想要改变工序号的站点。

         下一工序号:需要改变的下一工序号,不会实际修改站点的下一工序号,只是存储在Agv的私有对照表中,系 统关闭后丢失。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

  • png
 

改变点当前工序号

改变某个站点当前的工序号。

         启用:使能信号,通路时才能执行。

         站点输入:想要改变工序号的站点。

         当前工序号:想要改变为多少工序号。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出。

png

png

 

改变站点下一工序号

改变某个站点的下一个工序号。

         启用:使能信号,通路时才能执行。

         站点输入:想要改变工序号的站点。

         下一工序号:想要改变为多少工序号。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出。

png

png

 

清除AGV动态下一工序号列表

清除AGV目标站点动态下一工序号中的下一工序号缓存。

         启用:使能信号,通路时才能执行。

         AGV输入:AGV对象。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

png

 

通讯单元发送数据报文

通过通讯单元发送数据报文。

         使能:使能信号,通路时才能执行。

         通讯单元输入:网络配置中通讯单元的名称。

         待发送数据包:需要发送出去的通讯报文内容。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

png

png

 

从取货点取货到送货点送货

取送货任务。

         启用:使能信号,通路时才能执行。

         AGV选择参数输入:输入的AGV。

         取货站点输入:需要取货的站点。

         送货站点:需要送货的站点。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

png

 

运行到目标站点

运行到指定的站点。

         启用:使能信号,通路时才能执行。

         AGV输入:想要让指定哪一辆AGV过去。

         站点输入:想要去的目标站点。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

png

png

 

运行到下一工序

运行到下一个地标工序号。

         启用:使能信号,通路时才能执行。

         AGV输入:AGV对象。

         下一工序号:站点的下一工序号。若不填,则以AGV所在的站点的下一工序号执行。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

png

png

 

获取AGV所在站点

获取AGV当前所在站点。

         启用:使能信号,通路时才能执行。

         AGV输入:AGV对象。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

         站点:AGV所在站点。

png

 

获取站点上的AGV

获取站点上存在的AGV对象。

         启用:使能信号,通路时才能执行。

         站点输入:想要获取的站点。

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出。

         AGV对象:站点上的AGV对象。 png

 

站点是否有AGV或AGV驶来

判断站点是否有AGV或者AGV驶来,来做一些逻辑处理。

         启用:使能信号,通路时才能执行。

         站点输入:目标站点

         触发信号:脉冲信号,true-false为一次触发。

         信号输出:跟随触发信号输出

         结果:站点是否有AGV或AGV驶来。

png

 

根据筛选条件选取可执行任务的AGV

选取符合条件的特定AGV。

         启用:使能信号,通路时才能执行。

         站点输入:想要去的站点。

         触发信号:脉冲信号,true-false为一次触发。

         AGV条件:可选取特定AGV。

         站点条件:可选取特定站点。

         信号输出:跟随触发信号输出

         找到的AGV: 输出符合条件的AGV对象。 png

 

逻辑

逻辑与

相当于&,将两个输入的值&后输出对应的值。

         A1:第一个输入bool(根据输入数量改变)

         A2:第二个输入bool(根据输入数量改变) png

 

取反

相当于!,将两个输入的值!后输出对应的值。

         A:输入值。 

png

 

分频器

触发次数均分(例:当分频次数为2时,输入改变两次才触发一次输出)。

         输入:输入值。

         分频系数:需要分频数。 png

 

逻辑异或

相当于^,两个输入的值^后输出对应的值。

         A1:第一个输入bool(根据输入数量改变)。

         A2:第二个输入bool(根据输入数量改变)

         运算结果字节长度:运算结果字节长度。 png

 

通路开关

两者都有输入才会输出。

         输入:需要给一个bool为true的信号才能触发。

         通路:脉冲信号,需要给予一个输出脉冲。

         输出:输出信号。 png

 

逻辑或

相当于|,两个输入的值|后输出对应的值。。

         A1:第一个输入bool(根据输入数量改变)。

         A2:第二个输入bool(根据输入数量改变)。

         out:输出信号。 png

 

数学

累加器

每次自动累加。

         执行脉冲:脉冲信号,需要给予一个输出脉冲。

         初始值:赋值从几开始。

         步进值:每次自动累加几

         输出值:每累加一次输出一次。

png

 

浮点加法器

两个浮点数进行加法。该浮点数可以是整数,也可以是小数

         N1值:第一个浮点数

         N2值:第二个浮点数

         输出值:加法结果

png

 

整数加法器

两个整数进行加法。注意:必须是整数

         N1值:第一个整数

         N2值:第二个整数

         输出值:加法结果

png

 

字符串加法器

两个字符串进行加法。

         N1值:第一个字符串

         N2值:第二个字符串

         输出值:加法结果

png

 

比较器

两个值进行比较。两个值可以为任何,比如常量,数值等等。

         N1值:第一个值

         N2值:第二个值

         模式 :里面是两个值比较的符号。(== != > < >= <=)

         输出值:比较结果,为真或为假。

png

 

除法

除法运算。

         N1值:第一个值

         N2值:第二个值

         输出值:加法结果

png

 

乘法

乘法运算。

         N1值:第一个值

         N2值:第二个值。

         输出值:加法结果

png)

 

加法

加法运算。

         N1值:第一个值

         N2值:第二个值。

         输出值:加法结果

png)

 

减法

减法运算。

         N1值:第一个值

         N2值:第二个值。

         输出值:减法结果

png)

 

浮点减法器

浮点减法运算。浮点值可为整数,可为小数。

         N1值:第一个值

         N2值:第二个值。

         输出值:浮点减法结果

png)

 

整数减法器

整数减法运算。必须为整数

         N1值:第一个值

         N2值:第二个值。

         输出值:整数减法结果

png)

 

字符串减法器

字符串减法运算。

         N1值:第一个值

         N2值:第二个值。

         输出值:字符串减法结果

 

系统

列表访问器

对列表的值进行操作。

         使能:打开触发,不打开不触发。

         列表输入:对列表的值进行操作。

         输出索引:输出列表中第几位。

         触发信号:脉冲信号,true-false为一次触发。                     png

 

微型控制台

可以打印查看当前值。

         ln:输入值。                                                png

 

获取对象的属性

可以输出AGV当前各种属性值(AGV当前地标、电量等,地标当前工位号等)。

         使能:打开触发,不打开不触发。

         对象:输入的对象(AGV、站点等)。

         属性名称:(可选择可自己输入)当前输入对象的属性。

         触发信号:脉冲信号,true-false为一次触发。

         输入属性值:设置当前属性。

         输出属性值:输出当前属性值。

         信号输出:脉冲信号输出。             png

 

自定义脚本

逻辑复杂的项目可以使用自定义脚本进行操作,和脚本类似,但是可以和低代码编程相融。

         名称:自定义脚本名称(可写可不写)。

         引脚定义:属性定义。

         代码:需要执行的逻辑操作代码。

         命名空间:大部分已经添加,程序的命名空间。

         空白块:根据引脚定义 会自动生成一些可输入输出的引脚。png

 

列表添加器

存储多个对象进行传递。

  • 详解请看图                                        png
 

定时器

定时输出高低脉冲(true/false)

         翻转/脉冲:翻转输入脉冲

         使能:打开触发,不打开不触发

         间隔:脉冲触发时间

         输出:结果输出                    png

 

计数器

累计计数器。

         ln:输入使能

         复位:重置输出值

         Cnt:输出计数 png

 

输出到控制台

输出到控制台。

         ln:输入                            png