Skip to content

输入输出类+定时器类+运算类

输入输出类:

"√"表示支持此条指令。

指令类型前台全局后台局部后台
IO输入
IO输出
模拟输入
模拟输出
读取输出
上升沿检测
下降沿检测

定时器类:

"√"表示支持此条指令。

指令类型前台全局后台局部后台
延时

运算类:

"√"表示支持此条指令。

指令类型前台全局后台局部后台
正弦
余弦
反正切
逻辑运算
复合运算

输入输出类

DIN-IO输入

格式:DIN【指令名】I001【端口值存入的变量】IGH【输入路数】1【输入组号】。

功能:数字输入将外部信号转换为电压或电流的高或低电平,然后传递给控制系统。用于接收外部数字信号,通常用于检测开关的状态、传感器信号等。

参数描述
输入IO板若连接了多块IO板,则可选择是第几个IO板用来接收信号
输入路数 支持手填和变量形式1路输入、4路输入、8路输入
输入组号1-16:一块IO板分为16路信号通道,一路输入表示16路信号通道每1路为一组 1-4:一块IO板分为16路信号通道,4路输入表示16路信号通道每4路为一组。【1-4、5-8,9-12、13-16】 1-2:一块IO板分为16路信号通道,8路输入表示16路信号通道每8路为一组。【1-8,9-16】
端口值存入接收到的信号由2进制转为10进制存入变量中

示例:

参数设置:IO板1,输入路数选择4路输入,输入组号选择1,端口值存入GI001,此处参数设置仅用于示例说明。

  1. NOP

  2. DIN GI001 IGH#(1)

  3. PRINTMSG 0 #$GI001#

  4. END

示例说明:4路一组,假设1-4号端口值为0101,转化为10进制等于5,执行输出信息指令时小白条输出GI001=5。

DOUT-IO输出

格式:DOUT【指令名】OT【输出路数】(DOUT1-1)【输出组号】1【输出端口】 T=1【时间】1【错误停止处理,"0"表示输出值保持,"1"表示计时结束停止】。

功能:数字输出用于控制外部设备,不接受反馈信号,例如继电器、开关等。

参数描述
输出IO板若连接了多块IO板,则可选择是第几个IO板用来控制信号
输出路数1路输出 4路输出 8路输出
输出组号 支持手填和变量形式输出路数为1路输出时输出组号为1-16:一块IO板分为16路信号通道,一路输出表示16路信号通道每1路为一组 输出路数为4路输出时输出组号为1-4:一块IO板分为16路信号通道,4路输出表示16路信号通道每4路为一组。【1-4、5-8,9-12、13-16】 输出路数为8路输出时输出组号为1-2:一块IO板分为16路信号通道,8路输出表示16路信号通道每8路为一组。【1-8,9-16】
输出值自选:直接选端口,选中的端口输出高电平,未选中的端口为低电平 变量:通过给变量赋值让输出端口由低电平变为高电平
时间当T写入0时则表示持续输出高电平 当T写入2时则表示输出信号持续2秒后由高电平置为低电平
错误停止处理1.输出值保持:程序暂停、停止或者报错后,输出值持续输出。例如:输出端口为1-1,设置的时间为3秒,表示输出指令从开始到结束复位需要3秒,如果输出指令的运行时间没有到达3秒程序被暂停(假如运行了2秒),此时1-1端口继续输出高电平,程序启动后再运行1秒1-1端口就会复位 2.计时结束停止:到达设定的时间,IO端口复位 例如:输出端口为1-2,设置的时间为2秒,表示1-2输出端口持续输出两秒后1-2端口复位

示例:

  1. NOP

  2. DOUT OGH#(DOUT)15 T=1 1

  3. END

示例说明:1-1---1-4输出端口持续1秒后复位。

AIN-模拟输入

格式:AIN【指令名】 D001【变量值】 AIN1-1【模拟输入口】。

功能:可以接收连续变化的信号,常见的模拟输入信号包括电压、[[电流]{.underline}](https://www.elecfans.com/tags/电流/" \t "https://www.elecfans.com/d/_blank)等。

参数描述
模拟输入口通过选择的模拟输入口接收模拟量数值
变量值将采集到的模拟量数值保存到选择的变量,只支持浮点型变量

示例:

  1. NOP

  2. AIN D001 AIN1-1

  3. END

示例说明:将采集的AIN1-1模拟输入口的值读取到变量D0001。

AOUT-模拟输出

格式:AOUT【指令名】AOUT1-1【模拟输出口】 GD001/D001【变量值来源】。

功能:可以输出连续变化的信号。常见的模拟输出信号包括电压、电流等。

参数描述
模拟输出口通过选择的模拟输出口输出模拟量数值
变量值来源通过给变量赋值或者自定义将数值输出到选择的模拟输出口,范围[0,10]

示例:

  1. NOP

  2. GD001=5

  3. AOUT AOUT1-1 GD001

  4. END

示例说明:给变量GD001赋值,在执行模拟输出指令时会将值输出到选择的AOUT1-1端口。

PULSEOUT-脉冲输出

格式:PULSEOUT【指令名】RATE【频率】SUM【个数】。

功能:按照设定的脉冲频率与个数,在R1 PWMIO板上的DB9端子的引脚4(PWM+)上进行输出。

参数描述
个数脉冲个数
频率脉冲频率

示例:

  1. NOP

  2. PULSEOUT RATE = 100 SUM = 100

  3. END

READ_DOUT-读取输出

格式:READ_DOUT【指令名】GI001【变量类型】 OT【输出路数】(DOUT1-1 )【输出组号】。

功能:将数字输出端口的状态通过变量读取,然后将2进制转为10进制数值并存入目标变量中。

参数描述
IO板若连接了多块IO板,则可选择读取第几个IO板的数值
变量类型读取出的数值存入到选择的目标变量
输出路数1路输出(16组); 4路输出(4组); 8路输出(2组)
输出组号1-16 ; 1-4 , 5-8 , 9-12 , 13-16 ; 1-8 , 9-16

示例:

  1. NOP

  2. DOUT OGH#(1) 11 T=0 0

  3. READ_DOUT GI001 OGH#(1)

  4. END

示例说明:执行第一条输出指令后,IO板1的1-4端口值为1011,再执行读取输出指令会把1-4的端口值1011转为10进制,此时选择的变量GI001=11。

RISING_EDGE_TRIGGER-上升沿检测

格式:RISING_EDGE_TRIGGER【指令名】GI001【检测端口】GI001【上次结果】GI001【检测结果】

功能:检测当前端口值与上一次执行的端口值做对比,如果是上升沿则输出1不是则输出0

参数描述
参数
检测端口1.支持变量检测INT,BOOL,GINT,GBOOL 2.支持IO板的输入输出端口DIN,DOUT的检测
上次结果(上一次的检测结果)支持INT,BOOL,GINT,GBOOL变量 不使用:第二个参数未使用时,第一次执行指令,将读取端口的值存入内存中。再执行可以正常比较。若清除断点,则重置内存中的值,再执行为第一次执行的逻辑
检查结果INT,BOOL,GINT,GBOOL 存储检测结果,如果上一次的检测结果为0,本次检测结果为1,检查结果为1,否则为0

如果检测端口和上次结果都为INT时,判断是否为上升趋势,如果是则为1否则为0

示例:

  1. NOP

  2. TIMER T = 2

  3. RaisingEdgeCheck CheckPort=DIN1 LastValue=I001 ResultValue=I002

  4. TIMER T = 2

  5. RaisingEdgeCheck CheckPort=DIN1 LastValue=I001 ResultValue=I002

  6. END

示例说明:假设检测的端口DIN1此时是被触发状态(0-1),执行第二行指令时如果上次检测结果是0,本次检测结果是1,则I001=1,检查结果I002=1;执行第5行指令时继续监测端口DIN1的信号变化,如果此时DIN1还是触发状态,本次检测结果与上一次检测结果做对比,信号没有上升沿变化,则I002=0

FALLING_EDGE_TRIGGER-下降沿检测

格式:FALLING_EDGE_TRIGGER【指令名】DIN【检测端口】GI001【上次结果】GI001【检测结果】

功能:检测当前端口值与上一次执行的端口值做对比,如果是下降沿则输出1不是则输出0

参数描述
参数
检测端口1.支持变量检测INT,BOOL,GINT,GBOOL 2.支持IO板的输入输出端口DIN,DOUT的检测
上次结果(上一次的检测结果)支持INT,BOOL,GINT,GBOOL变量 不使用:第二个参数未使用时,第一次执行指令,将读取端口的值存入内存中。再执行可以正常比较。若清除断点,则重置内存中的值,再执行为第一次执行的逻辑
检查结果INT,BOOL,GINT,GBOOL 存储检测结果,如果上一次的检测结果为0,本次检测结果为1,检查结果为1,否则为0

如果检测端口和上次结果都为INT时,判断是否为下降趋势,如果是则为1否则为0

示例:

  1. NOP

  2. FallingEdgeCheck CheckPort=DIN1 LastValue=I002 ResultValue=I003

  3. TIMER T = 2

  4. FallingEdgeCheck CheckPort=DIN1 LastValue=I002 ResultValue=I003

  5. TIMER T = 2

  6. END

示例说明:假设检测的端口DIN1此时是被触发状态(0-1),执行第二行指令时如果上次检测结果是0,本次检测结果是1,则I002=1,检查结果I003=0;执行第5行指令时继续监测端口DIN1的信号变化,如果此时DIN1触发状态解除(1-0),本次检测结果与上一次检测结果做对比,信号下降沿变化,I002=0,I003=1

定时器类

TIMER-延时

格式:TIMER【指令名】T=2【延时时间】。

功能:延时设置的值,到达设置的时间后程序继续运行。

参数
变量延时时间支持手填和变量形式

示例:

  1. NOP

  2. MOVJ P0001 VJ=10% PL=0 ACC=5 DEC=5 0

  3. TIMER T=2

  4. DOUT OT#(DOUT1-1)1 T=1 0

  5. END

示例说明:点到点指令运行结束后,延时2秒后继续运行输出指令。

运算类

ADD-加

格式:ADD【指令名】I001【结果变量】I002【参数1】1【参数2】。

功能:参数1与参数2相加的值存入结果变量。

参数
结果变量把参数1和参数2的计算结果存入目标变量
参数1例如:I001=3+4,"3"表示的就是参数1
参数2例如:I001=3+4,"4"表示的就是参数2

示例:

  1. NOP

  2. SET I002=3

  3. ADD GI002 I002 3

  4. TIMER T=2

  5. END

示例说明:当程序执行完第3行加指令时GI002=6。

SUB-减

格式:SUB【指令名】I001【结果变量】I002【参数1】1【参数2】。

功能:参数1与参数2相减的值存入结果变量。

参数
结果变量把参数1和参数2的计算结果存入目标变量
参数1例如:I001=10-2,"10"表示的就是参数1
参数2例如:I001=10-2,"2"表示的就是参数2

示例:

  1. NOP

  2. SET GI002=5

  3. SUB GI001 10 GI002

  4. TIMER T=2

  5. END

示例说明:当程序执行完第3行减指令时GI001=5。

MUL-乘

格式:MUL【指令名】I001【结果变量】I002【参数1】1【参数2】。

功能:参数1与参数2相乘的值存入结果变量。

参数
结果变量把参数1和参数2的计算结果存入目标变量
参数1例如:I001=3*4,"3"表示的就是参数1
参数2例如:I001=3*4,"4"表示的就是参数2

示例:

  1. NOP

  2. SET I002=5

  3. SET I003=3

  4. MUL I001 I002 I003

  5. TIMER T=2

  6. END

示例说明:当程序执行完第4行乘指令时I001=15。

DIV-除

格式:DIV【指令名】I001【结果变量】I002【参数1】1【参数2】。

功能:参数1与参数2相除的值存入结果变量。

参数
结果变量把参数1和参数2的计算结果存入目标变量
参数1例如:I001=6/2,"6"表示的就是参数1
参数2例如:I001=6/2,"2"表示的就是参数2

示例:

  1. NOP

  2. SET D003=10

  3. DIV GD001 D003 4

  4. TIMER T=2

  5. END

示例说明:当程序执行完第3行除指令时GD001=2.5。

MOD-模

格式:MOD【指令名】I001【结果变量】I002【参数】。

功能:进行模运算(取余),将模运算的结果存入到选择的结果变量。

参数
结果变量存入计算结果的变量
参数例如:I001模9,"9"表示的就是参数

示例:

  1. NOP

  2. SET GI001=11

  3. MOD GI001 7

  4. TIMER T=2

  5. END

示例说明:当程序执行完第3行模指令时结果变量G001=4。

SIN-正弦

格式:SIN【指令名】I001【结果变量】I002【参数】。

功能:正弦运算(sin),A=sin(B),B为弧度制rad。

参数
结果变量存入计算结果的变量
参数此处填写的数值为弧度制数值,填写1表示1rad

示例:

  1. NOP

  2. SET GD001=0.5

  3. SIN GD001 1

  4. TIMER T=2

  5. END

示例说明:当程序执行完第3行正弦指令时结果变量GD001=0.8415。

COS-余弦

格式:COS【指令名】I001【结果变量】I002【参数】

功能:余弦运算(cos),A=cos(B),B为弧度制rad

参数
结果变量存入计算结果的变量
参数此处填写的数值为弧度制数值,填写1表示1rad

示例:

  1. NOP

  2. SET D002=2

  3. COS D002 1

  4. TIMER T=2

  5. END

示例说明:当程序执行完第3行余弦指令时结果变量D002=0.5403。

ATAN-反正切

格式:ATAN【指令名】I001【结果变量】I002【参数】。

功能:反正切运算(arctan),A=arctan(B),B为弧度制rad。

参数
结果变量存入计算结果的变量
参数此处填写的数值为弧度制数值,填写1表示1rad

示例:

  1. NOP

  2. SET GD002 = 2

  3. ATAN GD002 1

  4. TIMER T=2

  5. END

示例说明:当程序执行完第3行反正切指令时结果变量GD002=0.7854。

LOGICAL_OP-逻辑运算

格式:LOGICAL_OP【指令名】B001【结果变量】= I001【参数1】AND/OR/NOT【运算类型】GI001【参数2】。

功能:逻辑运算(与、或、非)。

参数
结果变量将逻辑运算结果存入选择的目标变量
参数1参与逻辑运算的参数1
运算类型与&&AND 或||OR 非!NOT 注意:运算类型选择非运算时参数2的变量类型无法选择
参数2参与逻辑运算的参数2

示例:

  1. NOP

  2. SET I001 = 1

  3. SET I002 = 0

  4. LOGICAL_OP B001 = I001 AND I002

  5. SET GI001 = 10

  6. SET GI002 = 1

  7. LOGICAL_OP B002 = GI001 OR GI002

  8. LOGICAL_OP B003 = NOT GI002

  9. TIMER T=2

  10. END

示例说明:程序在执行完与、或、非运算后B001=0、B002=1、B003=0。

FORMULA-复合运算

格式:COMPOSITE_COMPUTING【指令名】 #GI001=GI002+GI003# 【复合运算】

功能:复合运算

参数:无

示例:

  1. NOP

  2. SET D001 = 1

  3. SET B001 = 1

  4. COMPOSITE_COMPUTING #D001=B001+D001#

  5. COMPOSITE_COMPUTING #GD002=tan(30)#

  6. COMPOSITE_COMPUTING #GD003=log(10)#

  7. COMPOSITE_COMPUTING #GD004=GD002+GD003#

  8. END

示例说明:程序运行时根据指令顺序进行复合运算,并将复合运算结果存入目标变量

注意:输入格式必须是A=B+C,A+C=B此类输入格式为非法输入格式。

AI 检索专用问答对 (Q&A for Retrieval)

Q: 如何使用数字输入指令?

A: 使用DIN指令,设置输入IO板、输入路数、输入组号和端口值存入变量。例如:DIN IGH#(1),读取IO板1的输入信号并存入变量。

Q: 如何使用数字输出指令?

A: 使用DOUT指令,设置输出IO板、输出路数、输出组号、输出值、时间和错误停止处理。例如:DOUT OGH#(DOUT)15 T=1 1,控制指定端口输出1秒后复位。

Q: 如何读取模拟输入值?

A: 使用AIN指令,设置模拟输入口和变量值。例如:AIN D001 AIN1-1,读取AIN1-1端口的模拟值并存入D001。

Q: 如何使用模拟输出指令?

A: 使用AOUT指令,设置模拟输出口和变量值来源。例如:AOUT AOUT1-1 GD001,将GD001的值输出到AOUT1-1端口。

Q: 如何使用脉冲输出指令?

A: 使用PULSEOUT指令,设置脉冲频率和个数。例如:PULSEOUT RATE = 100 SUM = 100,按照100Hz的频率输出100个脉冲。

Q: 如何设置延时?

A: 使用TIMER指令,设置延时时间。例如:TIMER T=2,程序暂停2秒后继续执行。

Q: 延时时间支持哪些形式?

A: 延时时间支持手填和变量形式,可以直接输入数值或使用变量。

Q: 如何执行加法运算?

A: 使用ADD指令,设置结果变量、参数1和参数2。例如:ADD GI002 I002 3,将I002和3相加的结果存入GI002。

Q: 如何执行逻辑运算?

A: 使用LOGICAL_OP指令,设置结果变量、参数1、运算类型和参数2。例如:LOGICAL_OP B001 = I001 AND I002,执行与运算并将结果存入B001。

Q: 三角函数运算使用什么单位?

A: 三角函数运算(SIN、COS、ATAN)使用弧度制(rad),填写1表示1rad。

Q: 如何执行除法运算?

A: 使用DIV指令,设置结果变量、参数1和参数2。例如:DIV GD001 D003 4,将D003除以4的结果存入GD001。

Q: 如何执行模运算?

A: 使用MOD指令,设置结果变量和参数。例如:MOD GI001 7,将GI001对7取模的结果存入GI001。

版本历史

版本日期变更内容作者
1.0.02026-06-18初始版本MUZI165