信号指令编程——控制点型程序数据定义《十七》
Posted 机器人弗居
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号指令编程——控制点型程序数据定义《十七》相关的知识,希望对你有一定的参考价值。
I/O控制插补指令TriggJios、TriggLIOs的DO、AO或GO组信号的输出位置,可通过控制点型程序triggios或triggiosdnum、triggstrgo定义,程序数据具有统一的格式,因此,可以利用常规的方法,通过对程序数据进行设定或修改,改变控制点的位置及功能。在PAPID程序中,程序数据triggios、triggiosdnum、triggstrgo通常以数组的形式定义。
上节课我们一起学习了输出控制点设定指令编程,这节课小海与大家一来学习控制点型程序数据定义。
程序数据triggios、triggiosdnum用于DO、AO或GO组信号的输出控制点定义。triggios数据的信号输出值用num数据设定,triggiosdnum数据的信号输出用dnum数据设定。程序数据triggstrgo只能用于GO组信号的输出控制点定义,信号的输出值用纯数字的字符串数据stringdig设定。
程序数据triggios、triggiosdnum、triggstrgo的基本格式如下所示(以triggios为例),程序数据的名称可由用户自由定义。
ertert
1、used:控制点有效性,逻辑状态(bool)数据,TRUE代表输出控制点有效,FALSE代表控制点无效;
2、distance:控制点位置,数值(num)数据,单位为mm。设定值为输出控制点离基准位置的距离;
3、start:distance基准位置,逻辑状态(bool)数据,设定TRUE代表基准位置为移动指令起点;设定FALSE代表基准位置为移动指令终点;
4、equipLag:补偿外设动作的机器人实际移动时间,数据类型num,单位为s。EquipLag为正时,控制点将超前与distance基准位置,EquipLag为负时,控制点将滞后distance基准位置;
5、signalname:输出信号名称,字符串(string)数据,用来指定输出信号;
6、setvalue:信号输出值,triggios为num数据;triggiosdnum为dnum数据;triggstrgo为stringdig数据。
在PAPID程序中,输出控制点triggios、triggiosdnum、triggstrgo既可以完整定义,也可以对其中的每一项进行单轴修改,或者以数组形式一次性定义多个控制点。输出控制点数据定义编程示例如下所示:
MODULE MainModule
VAR triggios triggios1_test;
VAR triggstrgo triggstrgo2_test;
VAR triggiosdnum triggiosdnum3_test;
CONST triggios triggios4_test:=[FALSE,0,FALSE,0,"do1_test",0,0];
VAR triggios triggios5_test{3}:=[[TRUE,0,FALSE,0,"do2_test",1,0],
[FALSE,10,TRUE,0.1,"do3_test",edge,0],
[TRUE,20,TRUE,0.2,"do4_test",high,0]];
VAR triggios triggios6_test{3};
VAR triggstrgo triggstrgo7_test{3};
VAR triggiosdnum triggiosdnum8_test{3};
CONST robtarget p1_test:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget p2_test:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget p3_test:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
PROC main()
triggios1_test.used:=TRUE;
!定义triggios1_test控制点有效;
triggstrgo2_test.distance:=30;
!定义输出控制点triggiosdnum2_test离基准位置的距离为30mm;
triggiosdnum3_test.start:=TRUE;
!定义triggstrgo3_test控制点的基准位置为移动指令的起点;
triggios6_test{1}.equiplag:=0.3;
!定义triggios6_test{1}输出控制点将超前于distance位置0.3s输出;
triggios6_test{2}.signalname:="do5_test";
!定义triggios6_test{2}控制点的输出信号为do5_test;
triggios6_test{3}.setvalue:=low;
!定义triggios6_test{3}控制点将输出下降沿信号(1→0);
TriggJIOs p1_test,v1000\TriggData1:=triggios6_test,fine,tool0;
!TriggData1对应的数据类型是:triggios;
TriggLIOs p2_test,v1000\TriggData2:=triggstrgo7_test,fine,tool0;
!TriggData2对应的数据类型是:triggstrgo;
TriggLIOs p3_test,v1000\TriggData3:=triggiosdnum8_test,fine,tool0;
!TriggData3对应的数据类型是:triggiosdnum;
ENDPROC
ENDMODULE
ertert
有趣的灵魂在等你
长按二维码识别
以上是关于信号指令编程——控制点型程序数据定义《十七》的主要内容,如果未能解决你的问题,请参考以下文章