CN117971195A - 可视化编程方法和设备 - Google Patents
可视化编程方法和设备 Download PDFInfo
- Publication number
- CN117971195A CN117971195A CN202410087959.7A CN202410087959A CN117971195A CN 117971195 A CN117971195 A CN 117971195A CN 202410087959 A CN202410087959 A CN 202410087959A CN 117971195 A CN117971195 A CN 117971195A
- Authority
- CN
- China
- Prior art keywords
- target
- input
- output
- block
- primitive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 132
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000006870 function Effects 0.000 claims description 258
- 230000007717 exclusion Effects 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 5
- 230000002085 persistent effect Effects 0.000 claims description 3
- 230000006403 short-term memory Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 21
- 238000012905 input function Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种可视化编程方法和设备,用于在提高可视化编程效率的情况下,进行可视化编程。本申请实施例方法包括:基于预设的参数配置表确定输入输出块图元和功能块图元,以确定得到可视化编程界面,在可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置,以连接各个目标功能块图元,得到目标编程系统,若检测到对目标编程系统的目标参数的初始参数值进行修改的触发信号,则将目标参数的修改后的参数值发送至下位机,以使得下位机将目标参数的参数值更新为修改后的参数值。
Description
技术领域
本申请实施例涉及可视化编程领域,更具体的,是可视化编程方法、可视化编程设备以及计算机可读存储介质。
背景技术
目前,上位机是通过软件表格或使用键盘的方式设置下位机功能函数的参数值。在现有设置方式上,虽然能实现功能,但需要用户对各参数功能码非常熟悉,才能快速设置,同时现有的设置方式,不能显示最终设置的整体情况,即各个功能块之间的关系。这使得用户在设置下位机功能函数的参数值时可能会遇到困难,并且很难直观地了解整体的配置情况。
因此,对下位机功能函数进行编程的效率较低。
发明内容
本申请实施例提供了一种可视化编程方法、可视化编程设备以及计算机可读存储介质,能够在提高可视化编程效率的情况下,进行可视化编程。
第一方面,本申请实施例提供了一种可视化编程方法,包括:
基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面;其中所述参数配置表包括下位机的编程系统表、功能块表和输入输出表;所述编程系统表用于描述待编程系统的各个功能块之间的执行顺序和周期;所述功能块表用于描述所述待编程系统中的各个所述功能块;所述输入输出表用于描述各个所述功能块之间的输入输出关系;
在所述可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置;
基于所述目标功能块图元和所述目标输入输出块图元的拖拽位置,连接各个所述目标功能块图元,得到目标编程系统及所述目标编程系统对应的配置文件;
若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,以使得所述下位机将所述目标参数的参数值更新为所述修改后的参数值,以执行对应的功能;其中所述目标参数为所述目标输入输出块图元的输入输出参数,和/或所述目标功能块图元的参数。
可选的,所述功能块表包括功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性;所述输入输出表包括输入块和输出块的BICI属性;
所述基于所述参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面,包括:
基于所述输入块和输出块的BICI属性确定所述输入块图元和输出块图元的形状和大小;
基于所述功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性,确定所述功能块图元的形状和大小;
基于所述输入块图元和输出块图元的形状确定所述输入输出块图元,基于所述功能块图元的形状和大小确定所述功能块图元,以确定得到所述可视化编程界面。
可选的,所述基于所述功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性,确定所述功能块图元的形状和大小,包括:
基于所述输入和输出数量确定所述功能块图元的躯干高度,及所述功能块图元的输入和输出的位置;
基于所述输入与输出的BICI属性确定所述功能块图元的输入与输出的形状;
基于所述功能块的属性确定所述功能块图元的属性区域位置;
基于所述躯干高度、所述输入和输出的位置、所述输入与输出的形状和所述属性区域位置,确定所述功能块图元的形状和大小。
可选的,所述可视化编程界面包括场景区域;所述场景区域划分有固定大小的多个单元格;其中所述功能块图元的大小小于或等于所述单元格的大小;
所述确定满足预设拖拽条件的所述目标功能块图元的拖拽位置,包括:
按照预设顺序逐个遍历每个所述单元格,若当前的单元格不存在功能块图元,则将所述当前的单元格的位置作为所述目标功能块图元的拖拽位置。
可选的,所述确定满足预设拖拽条件的所述目标输入输出块图元的拖拽位置之前,所述方法还包括:
记录各个所述输入输出图元的当前的输入输出属性;其中所述输入输出属性包括互斥属性和/或使用属性;所述互斥属性包括各个所述输入输出块中存在互斥关系的各个互斥输入输出块的标识,及各个所述互斥输入或输出块的当前是否被使用的使用情况;所述使用属性包括各个所述输入输出块的使用次数阈值,及各个所述输入输出块的当前已使用次数;
基于所述互斥属性和/或所述使用属性确定所述目标输入输出块图元在当前的可用性,以基于所述可用性确定所述目标输入输出块图元是否满足所述预设拖拽条件。
可选的,所述基于所述互斥属性和/或所述使用属性确定所述目标输入输出块图元在当前的可用性,包括:
若所述互斥属性中存在与所述目标输入输出块图元对应的互斥输入输出块图元的标识,且所述目标输入输出块图元对应的互斥输入输出块图元的使用情况为已被使用;和/或若所述使用属性中所述目标输入输出块图元的当前已使用次数大于或等于所述目标输入输出块图元的使用次数阈值,则确定所述目标输入输出块图元在当前的可用性为不可用;
若所述互斥属性中不存在与所述目标输入输出块图元对应的互斥输入输出块图元的标识,或所述目标输入输出块图元对应的互斥输入输出块图元的使用情况为未被使用;和/或若所述使用属性中所述目标输入输出块图元的当前已使用次数小于所述目标输入输出块图元的使用次数阈值,则确定所述目标输入输出块图元在当前的可用性为可用。
可选的,所述目标功能块图元包括第一功能块图元和第二功能块图元;所述第一功能块图元和所述第二功能块图元为不同目标功能块图元;所述目标输入输出块图元的拖拽位置为所述可视化编程界面中所述目标功能块图元的输入输出位置;所述输入输出图元包括输入图元和输出图元;所述输入图元包括输入端口;所述输出图元包括输出端口;
所述连接各个所述目标功能块图元,包括:
确定连接线的起点的位置和终点的位置;其中所述起点的位置为所述第一功能块图元的输出端口的位置,所述终点的位置为所述第二功能块图元的输入端口的位置;
基于所述起点与所述终点之间的空单元格,确定所述起点与所述终点之间的连线路径;
通过所述连线路径连接所述第一功能块图元和所述第二功能块图元,以连接各个所述目标功能块图元。
可选的,在所述连线路径有多个的情况下,所述通过所述连线路径连接所述第一功能块图元和所述第二功能块图元,包括:
将所述多个连线路径中连续连接空单元格数量最多的连线路径作为目标连线路径;
基于所述目标连线路径连接所述第一功能块图元和所述第二功能块图元。
可选的,所述方法还包括:
获得所述下位机发送的所述目标参数的参数值;
将所述下位机发送的所述目标参数的参数值作为所述目标编程系统的目标参数的初始参数值。
可选的,所述下位机包括第一下位机和第二下位机;所述第一下位机为型号与所述第二下位机不同的下位机;所述编程系统表用于描述所述第一下位机的待编程系统的各个功能块之间的执行顺序和周期,及所述第二下位机的待编程系统的各个功能块之间的执行顺序和周期;
所述若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置,包括:
若确定对所述目标下位机进行可视化编程,且若检测到拖拽所述目标下位机的目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标下位机的目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置;其中所述目标下位机为所述第一下位机和所述第二下位机中的任一下位机;
所述基于所述目标功能块图元和所述目标输入输出块图元的拖拽位置,连接各个所述目标功能块图元,得到目标编程系统及所述目标编程系统对应的配置文件,包括:
基于所述目标下位机的目标功能块图元和所述目标输入输出块图元的拖拽位置,连接所述目标下位机的各个所述目标功能块图元,得到所述目标下位机的目标编程系统及所述目标下位机的目标编程系统对应的配置文件;
所述若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,包括:
若检测到对所述目标下位机的所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标下位机的所述目标参数的修改后的参数值发送至所述目标下位机。
第二方面,本申请实施例提供了一种可视化编程设备,包括:
确定单元,用于基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面;其中所述参数配置表包括下位机的编程系统表、功能块表和输入输出表;所述编程系统表用于描述待编程系统的各个功能块之间的执行顺序和周期;所述功能块表用于描述所述待编程系统中的各个所述功能块;所述输入输出表用于描述各个所述功能块之间的输入输出关系;
确定单元,还用于在所述可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置;
连接单元,用于基于所述目标功能块图元和所述目标输入输出块图元的拖拽位置,连接各个所述目标功能块图元,得到目标编程系统及所述目标编程系统对应的配置文件;
发送单元,用于若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,以使得所述下位机将所述目标参数的参数值更新为所述修改后的参数值,以执行对应的功能;其中所述目标参数为所述目标输入输出块图元的输入输出参数,和/或所述目标功能块图元的参数。
第三方面,本申请实施例提供了一种可视化编程设备,包括:
中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;
所述存储器为短暂存储存储器或持久存储存储器;
所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行前述可视化编程方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质包括指令,当指令在计算机上运行时,使得计算机执行前述可视化编程方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行前述可视化编程方法。
从以上技术方案可以看出,本申请实施例具有以下优点:可以基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面,若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,以使得所述下位机将所述目标参数的参数值更新为所述修改后的参数值,以执行对应的功能。可以了解下位机的待编程系统的各个功能块以及它们之间的执行顺序和周期,并且在可视化编程界面中,用户可以通过拖拽功能块和输入输出块,并连接功能块和输入输出块,因此,可视化编程界面展示了整体结果,用户可以直观地了解各功能块的顺序和关联关系,因此,通过可视化编程界面,用户可以通过拖拽功能块和输入输出块,连接它们来构建目标编程系统,并进行对应参数值的修改,减少了编写代码的复杂性,因此,对下位机功能函数进行编程的效率较高。
附图说明
图1为本申请实施例公开的一种可视化编程系统的架构示意图;
图2为本申请实施例公开的一种可视化编程方法的流程示意图;
图3为本申请实施例公开的一种编程系统表的示意图;
图4为本申请实施例公开的一种功能块表的示意图;
图5为本申请实施例公开的一种功能块图元的示意图;
图6为本申请实施例公开的一种输入输出表的示意图;
图7为本申请实施例公开的一种输入输出块图元的示意图;
图8为本申请实施例公开的另一种功能块图元的示意图;
图9为本申请实施例公开的一种输入大于输出的功能块图元的示意图;
图10为本申请实施例公开的一种输入小于输出的功能块图元的示意图;
图11为本申请实施例公开的一种确定满足预设拖拽条件的目标功能块图元的拖拽位置方法的示意图;
图12为本申请实施例公开的一种可视化编程设备的结构示意图;
图13为本申请实施例公开的另一种可视化编程设备的结构示意图;
图14为本申请实施例公开的又一种可视化编程设备的结构示意图。
具体实施方式
本申请实施例提供了一种可视化编程方法、可视化编程设备以及计算机可读存储介质,用于在提高可视化编程效率的情况下,进行可视化编程。
请参阅图1,本申请实施例中可视化编程系统的架构包括:
可视化编程设备101和下位机(下位机设备)102。当进行可视化编程时,可视化编程设备101可以与下位机102连接。可视化编程设备101可以基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面,其中参数配置表包括下位机102的编程系统表、功能块表和输入输出表,可以在可视化编程界面中,确定满足预设拖拽条件的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置,连接各个目标功能块图元,得到目标编程系统,可以将目标参数的修改后的参数值发送至下位机102,以使得下位机102将目标参数(目标输入输出块图元的输入输出参数,和/或目标功能块图元的参数)的参数值更新为修改后的参数值,以使得下位机102执行对应的功能。
基于图1所示的可视化编程系统,请参阅图2,图2为本申请实施例公开的一种可视化编程方法的流程示意图,方法包括:
201、基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面;其中参数配置表包括下位机的编程系统表、功能块表和输入输出表;编程系统表用于描述待编程系统的各个功能块之间的执行顺序和周期;功能块表用于描述待编程系统中的各个功能块;输入输出表用于描述各个功能块之间的输入输出关系。
本实施例中,当进行可视化编程时,可以基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面;其中参数配置表包括下位机的编程系统表、功能块表和输入输出表;编程系统表用于描述待编程系统的各个功能块之间的执行顺序和周期;功能块表用于描述待编程系统中的各个功能块;输入输出表用于描述各个功能块之间的输入输出关系。
202、在可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置。
基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面之后,可以在可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置。
203、基于目标功能块图元和目标输入输出块图元的拖拽位置,连接各个目标功能块图元,得到目标编程系统。
确定满足预设拖拽条件的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置之后,可以基于目标功能块图元和目标输入输出块图元的拖拽位置,连接各个目标功能块图元,得到目标编程系统。
204、若检测到对目标编程系统的目标参数的初始参数值进行修改的触发信号,则将目标参数的修改后的参数值发送至下位机,以使得下位机将目标参数的参数值更新为修改后的参数值,以执行对应的功能;其中目标参数为目标输入输出块图元的输入输出参数,和/或目标功能块图元的参数。
得到目标编程系统之后,可以若检测到对目标编程系统的目标参数的初始参数值进行修改的触发信号,则将目标参数的修改后的参数值发送至下位机,以使得下位机将目标参数的参数值更新为修改后的参数值,以执行对应的功能;其中目标参数为目标输入输出块图元的输入输出参数,和/或目标功能块图元的参数。
值得一提的是,可以通过图形界面的方式,将参数设置进行可视化,以便用户能够通过鼠标拖拽的方式快速设置参数。例如,对于某个参数,用户只需要在图形界面中将其拖拽到对应的功能块中,并进行对应参数值的修改即可完成参数设置。因此,可以通过可视化的图形界面、使用鼠标简单拖拽以及进行对应参数值的修改,实现编程参数的快速设置。
本申请实施例中,可以基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面,若检测到对目标编程系统的目标参数的初始参数值进行修改的触发信号,则将目标参数的修改后的参数值发送至下位机,以使得下位机将目标参数的参数值更新为修改后的参数值,以执行对应的功能。可以了解下位机的待编程系统的各个功能块以及它们之间的执行顺序和周期,并且在可视化编程界面中,用户可以通过拖拽功能块和输入输出块,并连接功能块和输入输出块,因此,可视化编程界面展示了整体结果,用户可以直观地了解各功能块的顺序和关联关系,因此,通过可视化编程界面,用户可以通过拖拽功能块和输入输出块,连接它们来构建目标编程系统,并进行对应参数值的修改,减少了编写代码的复杂性,因此,对下位机功能函数进行编程的效率较高。
本申请实施例中,确定满足预设拖拽条件的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置的方法可以有多种,基于图1所示的可视化编程方法,可以应用于可视化编程设备,下面对其中的一种方法进行描述。
本实施例中,当进行可视化编程时,可以基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面;其中参数配置表包括下位机的编程系统表、功能块表和输入输出表;编程系统表用于描述待编程系统的各个功能块之间的执行顺序和周期;功能块表用于描述待编程系统中的各个功能块;输入输出表用于描述各个功能块之间的输入输出关系。
具体的,可视化编程系统是指针对下位机功能函数参数自由设置的系统,可视化编程设备可以为上位机,在可视化编程系统(可视化编程系统包括上位机和下位机)中,上位机负责控制和管理下位机,下位机负责执行上位机下达的指令和采集数据。上位机可以是计算机、服务器等高性能设备,而下位机可以是嵌入式系统、单片机等低性能设备。
可视化编程设备可以进行参数配置表的设计,其中参数配置表包括编程系统表、功能块表和输入与输出表。
其中对于编程系统表,请参阅图3,图3为本申请实施例公开的一种编程系统表的示意图,由图3可知,ADP_PROGRAM_SYSTEM_T表为下位机(下位机设备)的系统编程表,每一行表示一个编程系统,数据来源于功能规范文档。图3中的系统名称是指编程系统名称,唯一标识。系统显示名称是指用于在UI界面展示给用户的名称,支持多语言。执行周期是指系统执行周期绑定的功能码。执行顺序功能码是指编程系统按顺序执行其顺序号对应的功能码。
其中对于功能块表,请参阅图4,图4为本申请实施例公开的一种功能块表的示意图,由图4可知,ADP_PROGRAM_FUN_BLOCK_T表为下位机(下位机设备)的功能块表,每一行表示一个功能块,整个数据来源于功能码规范。图4中的功能块类别是指按照功能码规范中的类别进行配置,格式为“数字:类别名称”,其中数字用于程序中的枚举定义,便于代码的编写。其中类别名称可支持多语言。功能块型号是指对具有相同功能的功能块的命名,格式为“数字:名称”,其中数字用于程序中的枚举定义,便于代码的编写。该名称不可用于多语言。功能块显示名称是指展示给用户的名称,可支持多语言。功能块编号是指相同功能的功能块的具体编号,用于区分具体的单个功能块。编程系统选项是指在编程系统中的对应的选项值。输入功能码是指输入参数对应的功能码,在解析时,根据是否有BICI属性,区分输入和属性。模块输入显示名称是指用于显示在功能块上的输入的对应名称。输出功能码是指功能块的输出对应的功能码。具体请参阅图5,图5为本申请实施例公开的一种功能块图元的示意图,由图5可知,图5为“单字转双字”对应的功能块,功能块显示名称、输入显示名称、输入功能码、输出功能码等各自对应功能块图元的位置如图5所示。
再具体的,图4中的字转位的功能块是指将某个字(16位)数据的某一位或某几位提取出来,或将某一位或某几位的值设置为指定的值的操作。输入功能码指的是用于输入字数据的寄存器地址,而输出功能码指的是用于输出转换后的位数据的寄存器地址。举例说明:假设字数据存储在P58.00这个寄存器中,功能块的输入功能码为P58.00,表示将这个寄存器中的字数据作为输入。功能块的输出功能码为P81.00~P81.15,表示将转换后的位数据输出到P81.00~P81.15这些寄存器中。假设P58.00寄存器中存储的是二进制数1010101010101010,若需要提取出其中的第3位和第8位,并将提取出的位数据存储到P81.00和P81.01这两个寄存器中。那么,输入功能码为P58.00,表示将P58.00寄存器中的字数据作为输入。输出功能码为P81.00和P81.01,表示将转换后的位数据输出到P81.00和P81.01这两个寄存器中。经过字转位的功能块的处理,P81.00寄存器中存储的是二进制数0,表示提取出的第3位的值为0;P81.01寄存器中存储的是二进制数1,表示提取出的第8位的值为1。这样,当输入功能码指定的寄存器中存储的是字数据时,功能块会根据输出功能码指定的寄存器地址,将指定位的值提取出来,并存储到对应的输出功能码指定的寄存器中。
再具体的,图4中的单字双字转换的功能块是指将单字(16位)数据转换为双字(32位)数据,或将双字数据转换为单字数据的操作。输入功能码指的是用于输入单字或双字数据的寄存器地址,而输出功能码指的是用于输出转换后的数据的寄存器地址。举例说明:假设单字数据存储在P59.06~P59.08这三个寄存器中,双字数据存储在P83.05这个寄存器中。那么,单字双字转换的功能块的输入功能码为P59.06~P59.08,表示将这三个寄存器中的单字数据作为输入。输出功能码为P83.05,表示将转换后的双字数据输出到P83.05这个寄存器中。这样,当输入功能码指定的寄存器中存储的是单字数据时,功能块会将这些单字数据转换为双字数据,并将转换后的结果存储到输出功能码指定的寄存器中。反之,当输入功能码指定的寄存器中存储的是双字数据时,功能块会将这些双字数据转换为单字数据,并将转换后的结果存储到输出功能码指定的寄存器中。
其中对于输入输出表,请参阅图6,图6为本申请实施例公开的一种输入输出表的示意图,由图6可知,ADP_PROGRAM_IO_BLOCK_T表为下位机(下位机设备)的输入输出表,数据可以由下位机工程师提供,用于支持便捷的输入与输出配置。图6中的模块类别是指区分是输入还是输出。模块类型名称是指对输入或输出的元素进行分类,用于展示在界面的分类。BICI属性是指区分是BI类型,还是CI类型,BI表示布尔型输入,CI表示数字型输入;不同类型,初始化的图形不一样,BI为尖形,CI为圆形。编号是指唯一ID。模块名称是指输入与输出的名称。映射值是指对于输入,其映射值表示的是BI/CI对应的选项值;而对于输出,其映射值为对应的连接器功能码。
值得一提的是,对功能块和输入输出块的自动确定可以提高编程系统的可视化程度和易用性。通过自动确定,用户无需手动确定(比如绘制等)功能块和输入输出块,减少了用户手动确定的时间和错误率。其次,用户可以根据自己的需求自定义确定功能块的方法。这样可以更加灵活地满足不同的功能需求。再者,自动确定还可以根据配置表中的信息,自动确定功能块的位置和形状,使得整个编程系统的布局更加美观和规范。
其中,基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面的方法可以是,先基于输入块和输出块的BICI属性确定输入块图元和输出块图元的形状和大小,然后基于功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性,确定功能块图元的形状和大小,最后基于输入块图元和输出块图元的形状确定输入输出块图元,基于功能块图元的形状和大小确定功能块图元,以得到可视化编程界面;其中功能块表包括功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性;输入输出表包括输入块和输出块的BICI属性。
其中,基于功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性,确定功能块图元的形状和大小的方法可以是,先基于输入和输出数量确定功能块图元的躯干高度,及功能块图元的输入和输出的位置,然后基于输入与输出的BICI属性确定功能块图元的输入与输出的形状,接着基于功能块的附加属性确定功能块图元的属性(附加属性)区域位置,最后基于躯干高度、输入和输出的位置、输入与输出的形状和属性(附加属性)区域位置,确定功能块图元的形状和大小。
具体的,对于输入输出块,请参阅图7,图7为本申请实施例公开的一种输入输出块图元的示意图,由图7可知,输入输出块根据数据项不同,可分为尖形和圆形两种。输出终端项即连接到输出的项,根据数据项不同,可分为尖形和圆形两种。
对于功能块,请参阅图8,图8为本申请实施例公开的另一种功能块图元的示意图,由图8可知,不同功能块的输入与输出数量不同,但功能块大致可分为头部序号区、功能块躯干区,其中躯干区需要确定名称、属性、输入及输出。
需要理解的是,每个功能块的输入与输出数量、类型不同,是否存在属性也不一样,这导致图形不一样,确定时需要从配置表中获取相关的信息。对于躯干高度的计算,根据输入与输出的数量,可分为输入大于输出,以及输入小于输出。输入与输出相等时,以输入的数量为标准进行计算。具体请参阅图9和图10,图9为本申请实施例公开的一种输入大于输出的功能块图元的示意图,图10为本申请实施例公开的一种输入小于输出的功能块图元的示意图,由图9和图10可知,躯干的高度计算公式为:H1+H2+H3*N+H4*(N-1),其中N为输入或输出的个数,H1表示第一个输入或输出距离上面的距离,H2表示最后一个输入或输出距离底部的距离,H3为输入或输出的高度,H4为每两个输入或输出之间的间隔。且H1与H2相等。输入与输出形状的确定可以由输入与输出参数的BICI属性确定。输入位置的确定可以包括以下两种情况:(1)入数量大于等于输出时,则每个输入距离顶部的的位置为H1+(H3+H4)*(N-1);(2)、输入数量小于输出时,则第一个输入在第一和第二个输出之间,其位置为H1+(H3*2+H4)/2–H3/2,之后每个输入之间间隔H4,则第N个输入的距离顶部的的位置为H1+(H3*2+H4)/2–H3/2+(H3+H4)*(N-1)。输出的位置情况及其确定方法与输入一致,此处不再赘述。属性(附加属性)位置的确定可以是将属性(附加属性)区域的高度设置为h(p),宽度设置为w(p),并将属性区域设置在功能块的底部中间。
基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面之后,可以在可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置。
其中,确定满足预设拖拽条件的目标功能块图元的拖拽位置的方法可以是,按照预设顺序逐个遍历每个单元格,若当前的单元格不存在功能块图元,则将当前的单元格的位置作为目标功能块图元的拖拽位置,其中可视化编程界面包括场景区域,场景区域划分有固定大小的多个单元格,其中功能块图元的大小小于或等于单元格的大小。
具体的,可视化编程界面可以包括场景区域,功能块在场景中的位置不是随意放置的,因此,在添加目标功能块图元时,需要计算目标功能块图元的拖拽位置,确定满足预设拖拽条件的目标功能块图元的拖拽位置的方法请参阅图11,图11为本申请实施例公开的一种确定满足预设拖拽条件的目标功能块图元的拖拽位置方法的示意图,由图11可知,整个场景区域可以按固定宽度和高度划分为多个单元格,目前宽度定为W,即GRID_CELL_WIDTH;按固定高度为H,即GRID_CELL_HEIGHT,在添加功能块时,可以以每个单元格为单位进行递增,查找指定长方形区域内(长为单元格宽度,宽为功能块高度)是否存在图元,若不存在则可确定(比如绘制等),若存在则不可确定(比如绘制等)。
再具体的,可视化编程界面的表现形式还可以包括三个区域,一个是功能块集合区域,一个是输入输出块集合区域,一个是场景区域,其中功能块集合区域包括各个功能块图元,输入输出块集合区域包括各个输入输出图元,用户可以拖拽各个功能块图元和/或各个输入输出图元以得到目标编程系统。可以理解的是,可视化编程界面的表现形式还可以是其他合理的表现形式,具体此处不作限定。
值得一提的是,通过在用户拖拽功能块(添加功能块)时,进行功能块位置的计算,可以确保功能块在场景中的位置不会重叠,从而实现了参数自由设置的可视化编程系统的设计要求。
其中,确定满足预设拖拽条件的目标输入输出块图元的拖拽位置之前,可以先记录各个输入输出图元的当前的输入输出属性,其中输入输出属性包括互斥属性和/或使用属性,互斥属性包括各个输入输出块中存在互斥关系的各个互斥输入输出块的标识,及各个互斥输入或输出块的当前是否被使用的使用情况,使用属性包括各个输入输出块的使用次数阈值,及各个输入输出块的当前已使用次数,然后基于互斥属性和/或使用属性确定目标输入输出块图元在当前的可用性,以基于可用性确定目标输入输出块图元是否满足预设拖拽条件。
其中,基于互斥属性和/或使用属性确定目标输入输出块图元在当前的可用性的方法可以是,若互斥属性中存在与目标输入输出块图元对应的互斥输入输出块图元的标识,且目标输入输出块图元对应的互斥输入输出块图元的使用情况为已被使用;和/或若使用属性中目标输入输出块图元的当前已使用次数大于或等于目标输入输出块图元的使用次数阈值,则确定目标输入输出块图元在当前的可用性为不可用;若互斥属性中不存在与目标输入输出块图元对应的互斥输入输出块图元的标识,或目标输入输出块图元对应的互斥输入输出块图元的使用情况为未被使用;和/或若使用属性中目标输入输出块图元的当前已使用次数小于目标输入输出块图元的使用次数阈值,则确定目标输入输出块图元在当前的可用性为可用。
具体的,输入输出可能会存在互斥的关系,因此需要基于输入输出参数互斥原理确定目标输入输出块图元在当前的可用性。
再具体的,可以定义IO(输入输出)参数类,并分别记录互斥属性和使用属性,互斥属性包含互斥的IO的ID、互斥的IO是否已被使用,使用属性包含本IO的使用类型、已使用次数,其中使用类型可以包括但不限于使用一次及不限次数两种。当用户添加或删除输入或输出块时,需要判断该输入、输出块的使用次数及互斥属性,然后进行相应的处理。比如可以对IO块进行是否可用的判断,满足以下任一条件,即不可用:(a)、互斥Id存在且已被使用;(b)、使用限制类型为“一次”且已使用次数大于0。
值得一提的是,通过输入输出参数互斥原理,可视化编程系统可以根据用户的需求和限制,自动判断和处理输入输出块的可用性,确保参数的设置符合要求。
确定满足预设拖拽条件的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置之后,可以基于目标功能块图元和目标输入输出块图元的拖拽位置,连接各个目标功能块图元,得到目标编程系统。
其中,连接各个目标功能块图元的方法可以是,先确定连接线的起点的位置和终点的位置,其中起点的位置为第一功能块图元的输出端口的位置,终点的位置为第二功能块图元的输入端口的位置,然后基于起点与终点之间的空单元格,确定起点与终点之间的连线路径,最后通过连线路径连接第一功能块图元和第二功能块图元,以连接各个目标功能块图元。
值得一提的是,通过这种自动添加连接线的方法,用户可以便于在可视化编程系统中设置功能函数的参数,并且系统可以自动计算各参数之间的关系,可以自动计算并添加连接线,减少了手动计算的时间和错误率,并且可以使得整个编程过程更加简单和直观。
其中,通过连线路径连接第一功能块图元和第二功能块图元的方法可以是,在连线路径有多个的情况下,可以先将多个连线路径中连续连接空单元格数量最多的连线路径作为目标连线路径,然后基于目标连线路径连接第一功能块图元和第二功能块图元。
具体的,自动添加连接线的方法可以是,先计算出连接线的起点和终点,然后将整个场景分化成单元格,接着从起点向终点查找空单元格,并记录,其中优先取连续的空行,最后通过连接线将各个功能块进行连接。
值得一提的是,将多个连线路径中连续连接空单元格数量最多的连线路径作为目标连线路径,可以提高可视化编程的效率和可读性。连续连接空单元格数量最多的连线路径意味着该路径在可视化编程界面中的连线长度较短,连接的功能块之间的距离较近,从而减少了连线的交叉和混乱,使得整个编程界面更加清晰和易于理解。此外,较短的连线长度还可以减少编程界面的占用空间,使得界面更加紧凑,方便用户进行操作和调试。因此,选择连续连接空单元格数量最多的连线路径作为目标连线路径可以提高可视化编程的效率和可读性。
基于目标功能块图元和目标输入输出块图元的拖拽位置,连接各个目标功能块图元,得到目标编程系统之后,可以若检测到对目标编程系统的目标参数的初始参数值进行修改的触发信号,则将目标参数的修改后的参数值发送至下位机,以使得下位机将目标参数的参数值更新为修改后的参数值,以执行对应的功能;其中目标参数为目标输入输出块图元的输入输出参数,和/或目标功能块图元的参数。
具体的,目标编程系统还包括各个输入输出块图元的输入输出参数的初始参数值,及各个功能块图元的参数的参数值,即各个输入输出块图元的输入输出参数对应功能码的数值,及各个功能块图元的参数对应的功能码的数值。
举个例子,假设下位机的功能码P61.51至P61.70属于各个输入输出块图元的输入输出参数对应功能码,这些功能码的初始参数值可以是初始化的数值(比如0或0:0等),或某些预设的数值(比如上一次设置的数值等),比如可以将P61.51该某个输入(输入电流)参数的功能码的数值从初始参数值0修改为1,表示将功能码P61.51的数值赋值为1。
假设下位机的功能码P85.00至P85.20属于待编程系统A的各个功能块图元的参数对应功能码,功能码P85.21至P85.40属于待编程系统B的各个功能块图元的参数对应功能码,比如,P85.01表示“编程系统A-1号模块选择”,P85.02表示“编程系统A-2号模块选择”,P85.03表示“编程系统A-3号模块选择”,P85.01、P85.02和P85.03这些功能码的数值可以分别赋值为53、57和56,以分别代表对应的功能块。
值得一提的是,可以通过将已编程的系统进行保存,以便用户能够在需要时重新加载已编程的系统。例如,当用户需要重新编程下位机(比如型号相同的下位机)时,只需要加载之前保存的已编程的系统(包括配置文件、目标参数的参数值和结果值)即可。因此,可以将已编程的系统进行保存,以供再次加载。
可以理解的是,本申请实施例还可以获得下位机发送的目标参数的参数值,将下位机发送的目标参数的参数值作为目标编程系统的目标参数的初始参数值,以使得可以基于下位机的目标参数的当前的参数值进行修改。
可以理解的是,本申请实施例还可以对参数配置表进行修改,得到更新后的参数配置表,其中更新后的参数配置表包括目标功能块的更新信息,然后基于更新后的参数配置表更新目标编程系统中目标功能块的配置信息,以得到更新后的目标编程系统,最后若检测到对更新后的目标编程系统的目标参数的初始参数值进行修改的触发信号,则将目标参数的修改后的参数值发送至下位机,以使得下位机将目标参数的参数值更新为修改后的参数值,以执行对应的功能;其中目标参数为目标输入输出块图元的输入输出参数,和/或目标功能块图元的参数。
具体的,其中目标功能块的更新信息可以包括但不限于新增功能块的参数配置信息、已有功能块的参数配置修改信息、删除已有功能块、更新已有功能块的输入输出表和/或调整已有功能块的执行顺序。
值得一提的是,通过配置方式,将下位机设备的功能块的更新后的信息进行记录,使得在下位机设备的功能块更新(比如升级)时,能够快速更新系统中的功能块函数,而不需要对系统进行修改。例如,当下位机的某个功能块发生升级时,只需要将升级信息记录在参数配置表,系统就能够自动更新对应的功能块函数。
还可以理解的是,本申请实施例还可以支持多种下位机设备进行可视化编程。
其中,对于支持多种下位机设备进行可视化编程的方案,下位机包括第一下位机和第二下位机,第一下位机为型号与第二下位机不同的下位机,编程系统表用于描述第一下位机的待编程系统的各个功能块之间的执行顺序和周期,及第二下位机的待编程系统的各个功能块之间的执行顺序和周期。若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置的方法可以是,若确定对目标下位机进行可视化编程,且若检测到拖拽目标下位机的目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的目标下位机的目标功能块图元的拖拽位置和目标输入输出块图元的拖拽位置;其中目标下位机为第一下位机和第二下位机中的任一下位机。且其中,基于目标功能块图元和目标输入输出块图元的拖拽位置,连接各个目标功能块图元,得到目标编程系统及目标编程系统对应的配置文件的方法可以是,基于目标下位机的目标功能块图元和目标输入输出块图元的拖拽位置,连接目标下位机的各个目标功能块图元,得到目标下位机的目标编程系统及目标下位机的目标编程系统对应的配置文件。且其中,若检测到对目标编程系统的目标参数的初始参数值进行修改的触发信号,则将目标参数的修改后的参数值发送至下位机的方法可以是,若检测到对目标下位机的目标编程系统的目标参数的初始参数值进行修改的触发信号,则将目标下位机的目标参数的修改后的参数值发送至目标下位机。
具体的,请继续参阅图3,需要理解的是,图3的系统A和系统B可以是同一种型号的下位机设备的编程系统,系统A和系统B分别用于可视化编辑下位机设备的某个功能(比如某些功能函数的组合等),综合系统A和系统B以可以可视化编辑下位机设备的整体功能;系统A和系统B也可以分别是不同种型号的下位机设备的编程系统,系统A和系统B分别可以用于可视化编辑对应型号的下位机设备的整体功能,具体此处不做限定。
值得一提的是,因为配置文件(包括目标编程系统对应的配置信息)中包含了下位机设备的相关信息和参数设置,系统在运行时会读取配置文件并根据其中的信息进行相应的初始化和配置。这样一来,当需要支持新的下位机设备时,只需要修改配置文件中的设备信息和参数设置,而不需要修改系统的源代码。系统会根据新的配置文件重新初始化和配置,从而支持新的下位机设备。
本实施例中,可以基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面,若检测到对目标编程系统的目标参数的初始参数值进行修改的触发信号,则将目标参数的修改后的参数值发送至下位机,以使得下位机将目标参数的参数值更新为修改后的参数值,以执行对应的功能。可以了解下位机的待编程系统的各个功能块以及它们之间的执行顺序和周期,并且在可视化编程界面中,用户可以通过拖拽功能块和输入输出块,并连接功能块和输入输出块,因此,可视化编程界面展示了整体结果,用户可以直观地了解各功能块的顺序和关联关系,因此,通过可视化编程界面,用户可以通过拖拽功能块和输入输出块,并连接它们来构建目标编程系统,并进行对应参数值的修改,减少了编写代码的复杂性,因此,对下位机功能函数进行编程的效率较高。其次,可以通过图形界面的方式,将参数设置进行可视化,以便用户能够通过鼠标拖拽的方式快速设置参数。例如,对于某个参数,用户只需要在图形界面中将其拖拽到对应的功能块中即可完成参数设置。因此,可以通过可视化的图形界面,以及使用鼠标简单拖拽,实现编程参数快速设置。接着,可以对功能块和输入输出块进行自动确定,可以提高编程系统的可视化程度和易用性,减少了用户手动确定的时间和错误率,可以更加灵活地满足不同的功能需求,可以使得整个编程系统的布局更加美观和规范。再者,通过在用户拖拽功能块(添加功能块)时,进行功能块位置的计算,可以确保功能块在场景中的位置不会重叠,从而实现了参数自由设置的可视化编程系统的设计要求。再者,通过输入输出参数互斥原理,可视化编程系统可以根据用户的需求和限制,自动判断和处理输入输出块的可用性,确保参数的设置符合要求。再者,通过这种自动添加连接线的方法,用户可以便于在可视化编程系统中设置功能函数的参数,并且系统可以自动计算各参数之间的关系,可以自动计算并添加连接线,减少了手动计算的时间和错误率,并且可以使得整个编程过程更加简单和直观。且选择连续连接空单元格数量最多的连线路径作为目标连线路径可以提高可视化编程的效率和可读性。再者,通过配置文件的方式,将下位机设备的功能块的更新后的信息进行记录,使得在下位机设备的功能块更新(比如升级)时,能够快速更新系统中的功能块函数,而不需要对系统进行修改,提高了功能块更新时,进行编程的效率。最后,当需要支持新的下位机设备时,只需要修改配置文件中的设备信息和参数设置,而不需要修改系统的源代码。提高了当需要支持新的下位机设备时进行编程的效率。
上面对本申请实施例中的可视化编程方法进行了描述,下面对本申请实施例中的可视化编程设备进行描述,请参阅图12,本申请实施例中的可视化编程设备一个实施例包括:
确定单元1201,用于基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面;其中所述参数配置表包括下位机的编程系统表、功能块表和输入输出表;所述编程系统表用于描述待编程系统的各个功能块之间的执行顺序和周期;所述功能块表用于描述所述待编程系统中的各个所述功能块;所述输入输出表用于描述各个所述功能块之间的输入输出关系;
所述确定单元1201,还用于在所述可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置;
连接单元1202,用于基于所述目标功能块图元和所述目标输入输出块图元的拖拽位置,连接各个所述目标功能块图元,得到目标编程系统及所述目标编程系统对应的配置文件;
发送单元1203,用于若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,以使得所述下位机将所述目标参数的参数值更新为所述修改后的参数值,以执行对应的功能;其中所述目标参数为所述目标输入输出块图元的输入输出参数,和/或所述目标功能块图元的参数。
本申请实施例中,可以基于预设的参数配置表确定输入输出块图元和功能块图元,以确定得到可视化编程界面,若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,以使得所述下位机将所述目标参数的参数值更新为所述修改后的参数值,以执行对应的功能。可以了解下位机的待编程系统的各个功能块以及它们之间的执行顺序和周期,并且在可视化编程界面中,用户可以通过拖拽功能块和输入输出块,并连接功能块和输入输出块,因此,可视化编程界面展示了整体结果,用户可以直观地了解各功能块的顺序和关联关系,因此,通过可视化编程界面,用户可以通过拖拽功能块和输入输出块,连接它们来构建目标编程系统,并进行对应参数值的修改,减少了编写代码的复杂性,因此,对下位机功能函数进行编程的效率较高。
下面对本申请实施例中的可视化编程设备进行详细描述,请参阅图13,本申请实施例中的可视化编程设备另一实施例包括:
确定单元1301,用于基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面;其中所述参数配置表包括下位机的编程系统表、功能块表和输入输出表;所述编程系统表用于描述待编程系统的各个功能块之间的执行顺序和周期;所述功能块表用于描述所述待编程系统中的各个所述功能块;所述输入输出表用于描述各个所述功能块之间的输入输出关系;
所述确定单元1301,还用于在所述可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置;
连接单元1302,用于基于所述目标功能块图元和所述目标输入输出块图元的拖拽位置,连接各个所述目标功能块图元,得到目标编程系统及所述目标编程系统对应的配置文件;
发送单元1303,用于若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,以使得所述下位机将所述目标参数的参数值更新为所述修改后的参数值,以执行对应的功能;其中所述目标参数为所述目标输入输出块图元的输入输出参数,和/或所述目标功能块图元的参数。
所述确定单元1301,具体用于基于所述输入块和输出块的BICI属性确定所述输入块图元和输出块图元的形状和大小,基于所述功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性,确定所述功能块图元的形状和大小,基于所述输入块图元和输出块图元的形状确定所述输入输出块图元,基于所述功能块图元的形状和大小确定所述功能块图元,以确定得到所述可视化编程界面;所述功能块表包括功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性;所述输入输出表包括输入块和输出块的BICI属性。
所述确定单元1301,具体用于基于所述输入和输出数量确定所述功能块图元的躯干高度,及所述功能块图元的输入和输出的位置,基于所述输入与输出的BICI属性确定所述功能块图元的输入与输出的形状,基于所述功能块的属性确定所述功能块图元的属性区域位置,基于所述躯干高度、所述输入和输出的位置、所述输入与输出的形状和所述属性区域位置,确定所述功能块图元的形状和大小。
所述确定单元1301,具体用于按照预设顺序逐个遍历每个所述单元格,若当前的单元格不存在功能块图元,则将所述当前的单元格的位置作为所述目标功能块图元的拖拽位置;所述可视化编程界面包括场景区域;所述场景区域划分有固定大小的多个单元格;其中所述功能块图元的大小小于或等于所述单元格的大小。
所述可视化编程设备还包括:
记录单元1304,用于记录各个所述输入输出图元的当前的输入输出属性;其中所述输入输出属性包括互斥属性和/或使用属性;所述互斥属性包括各个所述输入输出块中存在互斥关系的各个互斥输入输出块的标识,及各个所述互斥输入或输出块的当前是否被使用的使用情况;所述使用属性包括各个所述输入输出块的使用次数阈值,及各个所述输入输出块的当前已使用次数;
所述确定单元1301,还用于基于所述互斥属性和/或所述使用属性确定所述目标输入输出块图元在当前的可用性,以基于所述可用性确定所述目标输入输出块图元是否满足所述预设拖拽条件。
所述确定单元1301,具体用于若所述互斥属性中存在与所述目标输入输出块图元对应的互斥输入输出块图元的标识,且所述目标输入输出块图元对应的互斥输入输出块图元的使用情况为已被使用;和/或若所述使用属性中所述目标输入输出块图元的当前已使用次数大于或等于所述目标输入输出块图元的使用次数阈值,则确定所述目标输入输出块图元在当前的可用性为不可用,若所述互斥属性中不存在与所述目标输入输出块图元对应的互斥输入输出块图元的标识,或所述目标输入输出块图元对应的互斥输入输出块图元的使用情况为未被使用;和/或若所述使用属性中所述目标输入输出块图元的当前已使用次数小于所述目标输入输出块图元的使用次数阈值,则确定所述目标输入输出块图元在当前的可用性为可用。
所述连接单元1302,具体用于确定连接线的起点的位置和终点的位置;其中所述起点的位置为所述第一功能块图元的输出端口的位置,所述终点的位置为所述第二功能块图元的输入端口的位置,基于所述起点与所述终点之间的空单元格,确定所述起点与所述终点之间的连线路径,通过所述连线路径连接所述第一功能块图元和所述第二功能块图元,以连接各个所述目标功能块图元;所述目标功能块图元包括第一功能块图元和第二功能块图元;所述第一功能块图元和所述第二功能块图元为不同目标功能块图元;所述目标输入输出块图元的拖拽位置为所述可视化编程界面中所述目标功能块图元的输入输出位置;所述输入输出图元包括输入图元和输出图元;所述输入图元包括输入端口;所述输出图元包括输出端口。
所述连接单元1302,具体用于将所述多个连线路径中连续连接空单元格数量最多的连线路径作为目标连线路径,基于所述目标连线路径连接所述第一功能块图元和所述第二功能块图元。
所述可视化编程设备还包括:
获得单元1305,用于获得所述下位机发送的所述目标参数的参数值;
所述确定单元1302,还用于将所述下位机发送的所述目标参数的参数值作为所述目标编程系统的目标参数的初始参数值。
所述确定单元1301,具体用于若确定对所述目标下位机进行可视化编程,且若检测到拖拽所述目标下位机的目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标下位机的目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置;其中所述目标下位机为所述第一下位机和所述第二下位机中的任一下位机;所述下位机包括第一下位机和第二下位机;所述第一下位机为型号与所述第二下位机不同的下位机;所述编程系统表用于描述所述第一下位机的待编程系统的各个功能块之间的执行顺序和周期,及所述第二下位机的待编程系统的各个功能块之间的执行顺序和周期;
所述连接单元1302,具体用于基于所述目标下位机的目标功能块图元和所述目标输入输出块图元的拖拽位置,连接所述目标下位机的各个所述目标功能块图元,得到所述目标下位机的目标编程系统;
所述发送单元1303,具体用于若检测到对所述目标下位机的所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标下位机的所述目标参数的修改后的参数值发送至所述目标下位机。
本实施例中,可视化编程设备中的各单元执行如前述图2所示实施例中可视化编程设备的操作,具体此处不再赘述。
下面请参阅图14,本申请实施例中可视化编程设备1400的又一实施例包括:
中央处理器1401,存储器1405,输入输出接口1404,有线或无线网络接口1403以及电源1402;
存储器1405为短暂存储存储器或持久存储存储器;
中央处理器1401配置为与存储器1405通信,并执行存储器1405中的指令操作以执行前述图2所示实施例中的方法。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质包括指令,当指令在计算机上运行时,使得计算机执行前述图2所示实施例中的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行前述图2所示实施例中的方法。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (12)
1.一种可视化编程方法,其特征在于,包括:
基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面;其中所述参数配置表包括下位机的编程系统表、功能块表和输入输出表;所述编程系统表用于描述待编程系统的各个功能块之间的执行顺序和周期;所述功能块表用于描述所述待编程系统中的各个所述功能块;所述输入输出表用于描述各个所述功能块之间的输入输出关系;
在所述可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置;
基于所述目标功能块图元和所述目标输入输出块图元的拖拽位置,连接各个所述目标功能块图元,得到目标编程系统;
若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,以使得所述下位机将所述目标参数的参数值更新为所述修改后的参数值,以执行对应的功能;其中所述目标参数为所述目标输入输出块图元的输入输出参数,和/或所述目标功能块图元的参数。
2.根据权利要求1所述的方法,其特征在于,所述功能块表包括功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性;所述输入输出表包括输入块和输出块的BICI属性;
所述基于所述参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面,包括:
基于所述输入块和输出块的BICI属性确定所述输入块图元和输出块图元的形状和大小;
基于所述功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性,确定所述功能块图元的形状和大小;
基于所述输入块图元和输出块图元的形状确定所述输入输出块图元,基于所述功能块图元的形状和大小确定所述功能块图元,以得到所述可视化编程界面。
3.根据权利要求2所述的方法,其特征在于,所述基于所述功能块的输入和输出的数量、输入和输出的BICI属性、类型和附加属性,确定所述功能块图元的形状和大小,包括:
基于所述输入和输出数量确定所述功能块图元的躯干高度,及所述功能块图元的输入和输出的位置;
基于所述输入与输出的BICI属性确定所述功能块图元的输入与输出的形状;
基于所述功能块的属性确定所述功能块图元的属性区域位置;
基于所述躯干高度、所述输入和输出的位置、所述输入与输出的形状和所述属性区域位置,确定所述功能块图元的形状和大小。
4.根据权利要求1所述的方法,其特征在于,所述可视化编程界面包括场景区域;所述场景区域划分有固定大小的多个单元格;其中所述功能块图元的大小小于或等于所述单元格的大小;
所述确定满足预设拖拽条件的所述目标功能块图元的拖拽位置,包括:
按照预设顺序逐个遍历每个所述单元格,若当前的单元格不存在功能块图元,则将所述当前的单元格的位置作为所述目标功能块图元的拖拽位置。
5.根据权利要求1所述的方法,其特征在于,所述确定满足预设拖拽条件的所述目标输入输出块图元的拖拽位置之前,所述方法还包括:
记录各个所述输入输出图元的当前的输入输出属性;其中所述输入输出属性包括互斥属性和/或使用属性;所述互斥属性包括各个所述输入输出块中存在互斥关系的各个互斥输入输出块的标识,及各个所述互斥输入或输出块的当前是否被使用的使用情况;所述使用属性包括各个所述输入输出块的使用次数阈值,及各个所述输入输出块的当前已使用次数;
基于所述互斥属性和/或所述使用属性确定所述目标输入输出块图元在当前的可用性,以基于所述可用性确定所述目标输入输出块图元是否满足所述预设拖拽条件。
6.根据权利要求5所述的方法,其特征在于,所述基于所述互斥属性和/或所述使用属性确定所述目标输入输出块图元在当前的可用性,包括:
若所述互斥属性中存在与所述目标输入输出块图元对应的互斥输入输出块图元的标识,且所述目标输入输出块图元对应的互斥输入输出块图元的使用情况为已被使用;和/或若所述使用属性中所述目标输入输出块图元的当前已使用次数大于或等于所述目标输入输出块图元的使用次数阈值,则确定所述目标输入输出块图元在当前的可用性为不可用;
若所述互斥属性中不存在与所述目标输入输出块图元对应的互斥输入输出块图元的标识,或所述目标输入输出块图元对应的互斥输入输出块图元的使用情况为未被使用;和/或若所述使用属性中所述目标输入输出块图元的当前已使用次数小于所述目标输入输出块图元的使用次数阈值,则确定所述目标输入输出块图元在当前的可用性为可用。
7.根据权利要求1所述的方法,其特征在于,所述目标功能块图元包括第一功能块图元和第二功能块图元;所述第一功能块图元和所述第二功能块图元为不同目标功能块图元;所述目标输入输出块图元的拖拽位置为所述可视化编程界面中所述目标功能块图元的输入输出位置;所述输入输出图元包括输入图元和输出图元;所述输入图元包括输入端口;所述输出图元包括输出端口;
所述连接各个所述目标功能块图元,包括:
确定连接线的起点的位置和终点的位置;其中所述起点的位置为所述第一功能块图元的输出端口的位置,所述终点的位置为所述第二功能块图元的输入端口的位置;
基于所述起点与所述终点之间的空单元格,确定所述起点与所述终点之间的连线路径;
通过所述连线路径连接所述第一功能块图元和所述第二功能块图元,以连接各个所述目标功能块图元。
8.根据权利要求7所述的方法,其特征在于,在所述连线路径有多个的情况下,所述通过所述连线路径连接所述第一功能块图元和所述第二功能块图元,包括:
将所述多个连线路径中连续连接空单元格数量最多的连线路径作为目标连线路径;
基于所述目标连线路径连接所述第一功能块图元和所述第二功能块图元。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获得所述下位机发送的所述目标参数的参数值;
将所述下位机发送的所述目标参数的参数值作为所述目标编程系统的目标参数的初始参数值。
从所述下位机获得所述目标参数的更新后的参数值;
基于所述更新后的参数值和所述配置文件得到所述目标编程系统的更新后的结果值;
将所述更新后的结果值发送至所述下位机,以使得所述下位机基于所述更新后的结果值执行对应的功能。
10.根据权利要求1所述的方法,其特征在于,所述下位机包括第一下位机和第二下位机;所述第一下位机为型号与所述第二下位机不同的下位机;所述编程系统表用于描述所述第一下位机的待编程系统的各个功能块之间的执行顺序和周期,及所述第二下位机的待编程系统的各个功能块之间的执行顺序和周期;
所述若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置,包括:
若确定对所述目标下位机进行可视化编程,且若检测到拖拽所述目标下位机的目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标下位机的目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置;其中所述目标下位机为所述第一下位机和所述第二下位机中的任一下位机;
所述基于所述目标功能块图元和所述目标输入输出块图元的拖拽位置,连接各个所述目标功能块图元,得到目标编程系统,包括:
基于所述目标下位机的目标功能块图元和所述目标输入输出块图元的拖拽位置,连接所述目标下位机的各个所述目标功能块图元,得到所述目标下位机的目标编程系统;
所述若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,包括:
若检测到对所述目标下位机的所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标下位机的所述目标参数的修改后的参数值发送至所述目标下位机。
11.一种可视化编程设备,其特征在于,包括:
确定单元,用于基于预设的参数配置表确定输入输出块图元和功能块图元,以得到可视化编程界面;其中所述参数配置表包括下位机的编程系统表、功能块表和输入输出表;所述编程系统表用于描述待编程系统的各个功能块之间的执行顺序和周期;所述功能块表用于描述所述待编程系统中的各个所述功能块;所述输入输出表用于描述各个所述功能块之间的输入输出关系;
所述确定单元,还用于在所述可视化编程界面中,若检测到拖拽目标功能块图元和目标输入输出块图元的触发信号,则确定满足预设拖拽条件的所述目标功能块图元的拖拽位置和所述目标输入输出块图元的拖拽位置;
连接单元,用于基于所述目标功能块图元和所述目标输入输出块图元的拖拽位置,连接各个所述目标功能块图元,得到目标编程系统及所述目标编程系统对应的配置文件;
发送单元,用于若检测到对所述目标编程系统的目标参数的初始参数值进行修改的触发信号,则将所述目标参数的修改后的参数值发送至所述下位机,以使得所述下位机将所述目标参数的参数值更新为所述修改后的参数值,以执行对应的功能;其中所述目标参数为所述目标输入输出块图元的输入输出参数,和/或所述目标功能块图元的参数。
12.一种可视化编程设备,其特征在于,包括:
中央处理器和存储器;
所述存储器为短暂存储存储器或持久存储存储器;
所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行权利要求1至10中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410087959.7A CN117971195A (zh) | 2024-01-22 | 2024-01-22 | 可视化编程方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410087959.7A CN117971195A (zh) | 2024-01-22 | 2024-01-22 | 可视化编程方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971195A true CN117971195A (zh) | 2024-05-03 |
Family
ID=90847159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410087959.7A Pending CN117971195A (zh) | 2024-01-22 | 2024-01-22 | 可视化编程方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971195A (zh) |
-
2024
- 2024-01-22 CN CN202410087959.7A patent/CN117971195A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7134081B2 (en) | Method and apparatus for controlling an instrumentation system | |
CN111400899B (zh) | 一种用于电缆敷设建模的处理方法、系统和存储介质 | |
JP2009532805A (ja) | バーチャル・ビュー回路図エディタ | |
CN111191410A (zh) | 用于计算笔记本界面的系统和方法及其计算机可读介质 | |
CN111209000A (zh) | 自定义控件的处理方法、装置、电子设备及存储介质 | |
CN106407172A (zh) | 一种基于xml的报表生成方法 | |
CN105320669B (zh) | 数据存储、读取方法及数据存储、读取装置 | |
CN110688109A (zh) | 一种模型编辑系统的创建方法及模型编辑系统 | |
CN113703755A (zh) | 代码生成方法及代码生成装置 | |
JP6168206B2 (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム | |
CN117971195A (zh) | 可视化编程方法和设备 | |
CN111079933A (zh) | 量子线路的图形化显示方法、系统、存储介质和电子装置 | |
CN110209453A (zh) | 基于驱动器的多对象自动刷新及显示方法及相关产品 | |
CN112889026A (zh) | 用户界面资源文件优化 | |
JP7022472B1 (ja) | データ管理システム、データ管理方法及びデータ管理プログラム | |
CN115629763A (zh) | 目标代码的生成方法、npu指令的显示方法及装置 | |
CN114281539A (zh) | 一种资源配置方法、系统及存储介质 | |
CN114089981A (zh) | 基于VSCode集成开发环境快速制作spec文件的方法及插件工具 | |
CN108089973A (zh) | 一种信息处理方法及设备 | |
CN112764637A (zh) | 一种智慧农业物联网设备描述文件生成方法 | |
CN112130841B (zh) | Sql开发方法、装置及终端设备 | |
JP7021401B1 (ja) | ロギング支援装置、ロギングシステム、ロギング支援方法及びプログラム | |
CN108132780B (zh) | 一种基于自定义脚本的航空显示控制方法 | |
CN108572925A (zh) | 一种step文件等效的二进制数据存储方法 | |
CN115051904B (zh) | 一种基于标记语言的单盘状态管理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |