Appearance
输入输出类+定时器类+运算类
输入输出类:
"√"表示支持此条指令。
| 指令类型 | 前台 | 全局后台 | 局部后台 |
|---|---|---|---|
| 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,此处参数设置仅用于示例说明。
NOP
DIN GI001 IGH#(1)
PRINTMSG 0 #$GI001#
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端口复位 |
示例:
NOP
DOUT OGH#(DOUT)15 T=1 1
END
示例说明:1-1---1-4输出端口持续1秒后复位。
AIN-模拟输入
格式:AIN【指令名】 D001【变量值】 AIN1-1【模拟输入口】。
功能:可以接收连续变化的信号,常见的模拟输入信号包括电压、[[电流]{.underline}](https://www.elecfans.com/tags/电流/" \t "https://www.elecfans.com/d/_blank)等。
| 参数 | 描述 |
|---|---|
| 模拟输入口 | 通过选择的模拟输入口接收模拟量数值 |
| 变量值 | 将采集到的模拟量数值保存到选择的变量,只支持浮点型变量 |
示例:
NOP
AIN D001 AIN1-1
END
示例说明:将采集的AIN1-1模拟输入口的值读取到变量D0001。
AOUT-模拟输出
格式:AOUT【指令名】AOUT1-1【模拟输出口】 GD001/D001【变量值来源】。
功能:可以输出连续变化的信号。常见的模拟输出信号包括电压、电流等。
| 参数 | 描述 |
|---|---|
| 模拟输出口 | 通过选择的模拟输出口输出模拟量数值 |
| 变量值来源 | 通过给变量赋值或者自定义将数值输出到选择的模拟输出口,范围[0,10] |
示例:
NOP
GD001=5
AOUT AOUT1-1 GD001
END
示例说明:给变量GD001赋值,在执行模拟输出指令时会将值输出到选择的AOUT1-1端口。
PULSEOUT-脉冲输出
格式:PULSEOUT【指令名】RATE【频率】SUM【个数】。
功能:按照设定的脉冲频率与个数,在R1 PWMIO板上的DB9端子的引脚4(PWM+)上进行输出。
| 参数 | 描述 |
|---|---|
| 个数 | 脉冲个数 |
| 频率 | 脉冲频率 |
示例:
NOP
PULSEOUT RATE = 100 SUM = 100
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 |
示例:
NOP
DOUT OGH#(1) 11 T=0 0
READ_DOUT GI001 OGH#(1)
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
示例:
NOP
TIMER T = 2
RaisingEdgeCheck CheckPort=DIN1 LastValue=I001 ResultValue=I002
TIMER T = 2
RaisingEdgeCheck CheckPort=DIN1 LastValue=I001 ResultValue=I002
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
示例:
NOP
FallingEdgeCheck CheckPort=DIN1 LastValue=I002 ResultValue=I003
TIMER T = 2
FallingEdgeCheck CheckPort=DIN1 LastValue=I002 ResultValue=I003
TIMER T = 2
END
示例说明:假设检测的端口DIN1此时是被触发状态(0-1),执行第二行指令时如果上次检测结果是0,本次检测结果是1,则I002=1,检查结果I003=0;执行第5行指令时继续监测端口DIN1的信号变化,如果此时DIN1触发状态解除(1-0),本次检测结果与上一次检测结果做对比,信号下降沿变化,I002=0,I003=1
定时器类
TIMER-延时
格式:TIMER【指令名】T=2【延时时间】。
功能:延时设置的值,到达设置的时间后程序继续运行。
| 参数 | 值 |
|---|---|
| 变量 | 延时时间支持手填和变量形式 |
示例:
NOP
MOVJ P0001 VJ=10% PL=0 ACC=5 DEC=5 0
TIMER T=2
DOUT OT#(DOUT1-1)1 T=1 0
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 |
示例:
NOP
SET I002=3
ADD GI002 I002 3
TIMER T=2
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 |
示例:
NOP
SET GI002=5
SUB GI001 10 GI002
TIMER T=2
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 |
示例:
NOP
SET I002=5
SET I003=3
MUL I001 I002 I003
TIMER T=2
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 |
示例:
NOP
SET D003=10
DIV GD001 D003 4
TIMER T=2
END
示例说明:当程序执行完第3行除指令时GD001=2.5。
MOD-模
格式:MOD【指令名】I001【结果变量】I002【参数】。
功能:进行模运算(取余),将模运算的结果存入到选择的结果变量。
| 参数 | 值 |
|---|---|
| 结果变量 | 存入计算结果的变量 |
| 参数 | 例如:I001模9,"9"表示的就是参数 |
示例:
NOP
SET GI001=11
MOD GI001 7
TIMER T=2
END
示例说明:当程序执行完第3行模指令时结果变量G001=4。
SIN-正弦
格式:SIN【指令名】I001【结果变量】I002【参数】。
功能:正弦运算(sin),A=sin(B),B为弧度制rad。
| 参数 | 值 |
|---|---|
| 结果变量 | 存入计算结果的变量 |
| 参数 | 此处填写的数值为弧度制数值,填写1表示1rad |
示例:
NOP
SET GD001=0.5
SIN GD001 1
TIMER T=2
END
示例说明:当程序执行完第3行正弦指令时结果变量GD001=0.8415。
COS-余弦
格式:COS【指令名】I001【结果变量】I002【参数】
功能:余弦运算(cos),A=cos(B),B为弧度制rad
| 参数 | 值 |
|---|---|
| 结果变量 | 存入计算结果的变量 |
| 参数 | 此处填写的数值为弧度制数值,填写1表示1rad |
示例:
NOP
SET D002=2
COS D002 1
TIMER T=2
END
示例说明:当程序执行完第3行余弦指令时结果变量D002=0.5403。
ATAN-反正切
格式:ATAN【指令名】I001【结果变量】I002【参数】。
功能:反正切运算(arctan),A=arctan(B),B为弧度制rad。
| 参数 | 值 |
|---|---|
| 结果变量 | 存入计算结果的变量 |
| 参数 | 此处填写的数值为弧度制数值,填写1表示1rad |
示例:
NOP
SET GD002 = 2
ATAN GD002 1
TIMER T=2
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 |
示例:
NOP
SET I001 = 1
SET I002 = 0
LOGICAL_OP B001 = I001 AND I002
SET GI001 = 10
SET GI002 = 1
LOGICAL_OP B002 = GI001 OR GI002
LOGICAL_OP B003 = NOT GI002
TIMER T=2
END
示例说明:程序在执行完与、或、非运算后B001=0、B002=1、B003=0。
FORMULA-复合运算
格式:COMPOSITE_COMPUTING【指令名】 #GI001=GI002+GI003# 【复合运算】
功能:复合运算
参数:无
示例:
NOP
SET D001 = 1
SET B001 = 1
COMPOSITE_COMPUTING #D001=B001+D001#
COMPOSITE_COMPUTING #GD002=tan(30)#
COMPOSITE_COMPUTING #GD003=log(10)#
COMPOSITE_COMPUTING #GD004=GD002+GD003#
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.0 | 2026-06-18 | 初始版本 | MUZI165 |