跳到主要内容

15.4.6 IO 指令

15.4.6.1 SetDO

说明

设置某个数字输出信号的值,该指令如果放在运动指令之后使用,不会打断转弯区,在运动指令轨迹终点触发,或在转弯区起点触发,具体使用可参考例2

定义

SetDO(DoName, Value);
DoName,数据类型 signaldo,指定需要改变状态的 DO 信号名称,必须是已经在输入输出界面定义过的变量。
Value,数据类型 bool,DO 信号的目标状态,仅支持 true 和 false。

示例

例 1
SetDO(do2,true);
将 do2 对应的数字输出点置为高电平。

例 2
情况1:两条带转弯区的运动指令之间使用IO指令
MoveL(p1,v1000,z50,tool0);
SetDO(do2,true);
MoveL(p2,v1000,z50,tool0);
此时SetDO指令在p1到p2的转弯区起点处触发。

情况2:带转弯区运动指令之后使用IO指令,但后面不再有运动指令
MoveL (p1, v1000, z50, tool0);
SetDO (do2, true);
…​…​…​…​…​…​…​…​…​…​…​…​(后续没有运动指令,或者存在打断转弯区指令)
此时SetDO指令在运动指令到达p1点后,触发执行。

情况3:运动指令不带转弯区
MoveL (p1, v1000, fine, tool0);
SetDO (do2, true);
…​…​…​…​…​…​…​…​…​…​…​…​(不管后续指令是什么)
此时SetDO指令在运动指令到达p1点后,触发执行。

15.4.6.2 SetAllDO

说明

设置所有数字输出信号的值,该指令如果放在运动指令之后使用,不会打断转弯区,在运动指令轨迹终点触发,或在转弯区起点触发,具体使用可参考SetDO例2。

定义

SetAllDO(Value);
Value,数据类型 bool,DO 信号的目标状态,仅支持 true 和 false。

示例

例 1
SetAllDO(true);
将所有数字输出电压置为高电平,绑定了系统功能的 DO 除外。

15.4.6.3 SetGO

说明

设置某个组输出的值,该指令如果放在运动指令之后使用,不会打断转弯区,在运动指令轨迹终点触发,或在转弯区起点触发,具体使用可参考SetDO例2。

定义

SetGO(GoName, Value);
GoName,数据类型 signalgo,指定需要改变值的 go 信号名称,,必须是已经在输入输出界面定义过的变量。
Value,数据类型 int,go 信号的目标值。支持的最大值为 2147483648(2 的 31 次方)。

示例

例 1
SetGO(go3, 8);
将 go3 对应的一组物理端口的值设置为 8。

15.4.6.4 SetAO

说明

设置某个模拟输出信号的值,该指令如果放在运动指令之后使用,不会打断转弯区,在运动指令轨迹终点触发,或在转弯区起点触发,具体使用可参考SetDO例2。

定义

SetAO(AoName, Value);
AoName,数据类型 signalao,指定需要改变值的 ao 信号名称,必须是已经在输入输出界面定义过的变量。
Value,数据类型 double,ao 信号的目标值。

示例

例 1
SetAO(ao3, 5.123);
将 ao3 对应的一组物理端口的值设置为 5.123。

15.4.6.5 SetVDI

说明

设置某个虚拟 IO 设备数字输入信号的值。

定义

SetVDI(VDIName, Value);
VDIName,数据类型 signaldi,指定需要改变状态的 VDI(Virtual Digital Input)信号名称。
Value,数据类型 bool,VDI 信号的目标状态,仅支持 true 和 false。

示例

例 1
SetVDI(VDI_0, true);
将 VDI_0 对应的虚拟 IO 设备数字输出端口置为高电平

15.4.6.6 PulseDO

说明

用于产生一个脉冲的 DO 信号,该指令如果放在运动指令之后使用,不会打断转弯区,在运动指令轨迹终点触发,或在转弯区起点触发,具体使用可参考SetDO例2。

定义

PulseDO([\High,] [length,] signal);
[\High],当指令执行时,不论当前状态,始终将 signal 状态置为高(1)。
[length],指定脉冲长度(0.001-2000s)。缺失时默认 0.2s。数据类型 double 或 int。
signal,要产生脉冲的信号,数据类型 signaldo

注意

PulseDO 过程中如果执行 SetDO/SetGO,PulseDO 失效,按 SetDO/SetGO 执行。

15.4.6.7 PulseVDI

说明

用于对虚拟 IO 设备数字输入信号产生一个脉冲。

定义

PulseVDI([\High,] [length,] signal_name);
[\High],当指令执行时,不论当前状态,始终将 signal 状态置为高(1)。
[length],指定脉冲长度(0.001-2000s),缺失时默认 0.2s, 数据类型:double 或 int。
signal_name,要产生脉冲的信号,数据类型:signaldi。

示例

例 1 SetVDI(VDI_0, false);
PulseVDI(\High, 2, VDI_0);
VDI_0对应的虚拟IO设备数字输出端口将产生一个持续2秒的高电平脉冲。

15.4.6.8 PulseReg

说明

指定一个寄存器产生指定时间的一个脉冲信号,并在时间结束后恢复寄存器初值,该指令如果放在运动指令之后使用,不会打断转弯区,在运动指令轨迹终点触发,或在转弯区起点触发,具体使用可参考SetDO例2。

定义

PulseReg(Register, Value, Time);
Register,要产生脉冲信号的寄存器名称,数据类型 Bit/Bool 寄存器。
Value,指定脉冲信号的值,数据类型 Bool。
Time,脉冲信号的持续时间,单位秒,限制范围 [0.001, 10.0],数据类型 double。

注意

PulseReg 过程中如果执行 WriteRegByName 或者寄存器等号赋值操作,寄存器的有效值会按最后执行的指令生效,但是在 PulseReg 指定的时间结束后,会恢复执行 PulseReg 之前的初值。