Appearance
字符串类/输入输出类/定时器类/运算类指令手册
字符串类
| 指令类型 | 前台 | 全局后台 | 局部后台 |
|---|---|---|---|
| 字符串追加 | √ | ||
| 字符串索引截取 | √ | ||
| 字符串分隔符拆分 | √ | ||
| 字符串定位查询 | √ | ||
| 字符串长度 | √ | ||
| 字符串转非字符串 | √ | ||
| 非字符串转字符串 | √ |
| 指令类型 | 指令 | 单步 | 倒序 | 提前执行 | 试运行 | 被提前执行 |
|---|---|---|---|---|---|---|
| 字符串类 | 字符串追加 | 支持 | 跳转到第一行 | 不支持 | 支持 | 支持 |
| 字符串类 | 字符串索引截取 | 支持 | 跳转到第一行 | 不支持 | 支持 | 支持 |
| 字符串类 | 字符串分隔符拆分 | 支持 | 跳转到第一行 | 不支持 | 支持 | 支持 |
| 字符串类 | 字符串定位查询 | 支持 | 跳转到第一行 | 不支持 | 支持 | 支持 |
| 字符串类 | 字符串长度 | 支持 | 跳转到第一行 | 不支持 | 支持 | 支持 |
| 字符串类 | 字符串转非字符串 | 支持 | 跳转到第一行 | 不支持 | 支持 | 支持 |
| 字符串类 | 非字符串转字符串 | 支持 | 跳转到第一行 | 不支持 | 支持 | 支持 |
STRING-SPELL-字符串追加
格式:STRING-SPELL【指令名】S001【目标变量】S002【目标变量追加的值】。
功能:在原有字符串变量或者新的字符变量中追加需要的字符,就构成了一个新的字符串变量。
参数:
| 参数 | 说明 |
|---|---|
| 变量 | 选择的变量类型和变量名称:STRING、GSTRING |
| 变量值 | 给选择的目标变量通过常数或者绑定变量的形式赋值 |
示例:
NOP
SET S001=#@QWE123#
STRING_SPELL(S001+#!ASD234@#)
STRING_SPELL(GS001+#INEXBOT#)
END
示例说明:执行第3行指令会在原有变量S001的基础上追加字符!ASD234@,此时S001=@QWE123!ASD234@,执行第4行指令会在新字符变量GS001的基础上追加字符INEXBOT,此时GS001=INEXBOT。
STRING-SLICE-字符串索引截取
格式:STRING-SLICE【指令名】S001【索引目标变量】(I001,I001)【起始索引位置,结束索引位置】S002【查询数据的存放变量】。
功能:截取一个字符串变量中的其中一部分字符串,并把截取到部分字符串存到指定的变量。
参数:
| 参数 | 说明 |
|---|---|
| 变量 | 索引的目标变量 |
| 起始索引 | 变量,手填,开头三种方式定位起始索引位置 1. 变量(INT,GINT):给变量赋值定位起始索引位置 2. 手填:直接手填值 3. 开头:默认的索引位置就是1 例如:目标变量S002=@QWEASD234,起始索引位置3,那就会从第3个字符W开始索引 |
| 结束索引 | 变量(INT,GINT):给变量赋值定位结束索引位置 1. 手填:直接手填值 2. 开头:默认的索引位置就是END,表示索引目标变量的最后一个字符 例如:目标变量S002=@QWEASD234,起始索引位置3,结束索引位置7,那就会从第3个字符W开始索引,从第七个字符D结束索引 |
| 数据存放变量 | 截取的数据存放的变量(STRING,GSTRING) 例如:目标变量S002=@QWEASD234,起始索引位置3,结束索引位置7,那就会从第3个字符W开始索引,从第七个字符D结束索引,将截取部分的字符WEAS存入到选择的变量 |
示例:
NOP
SET S010 = #!@INEXBOT123#
SET I001 = 2
SET I002 = 10
STRING-SLICE S010(I001,I002)S011
END
示例说明:索引的目标变量S010=!@INEXBOT123,索引起始位置I001=2,索引结束位置I002=10,截取部分存入变量S011,程序运行结束后S011=@INEXBOT。
STRING-SPLIT-字符串分隔符拆分
格式:STRING-SPLIT【指令名】S001【拆分的变量名】,【分隔符】S002【查询到的数据存放首个变量】I001【使用数据存放数,"0"表示不使用】。
功能:将字符串变量中的其中一个字符拆分,并把拆分的字符依次存放到指定变量中。
参数:
| 参数 | 说明 |
|---|---|
| 变量 | 拆分的字符串变量名(STRING,GSTRING) |
| 分隔符 | 手填值和变量定义分隔符,通过分隔符可以把原有的一个字符串拆分成几个字符串 例如:GS010=@INEXBOT@TEST!123,分隔符为@,运行分隔符拆分指令,将原有的字符串拆分为两部分INEXBOT和TEST!23 |
| 数据存放的首个变量 | 分隔符拆分完成的字符存放的首位置 例如:GS010=@INEXBOT@TEST!123,分隔符为@,运行分隔符拆分指令,将原有的字符串拆分为两部分INEXBOT和TEST!23,这两部分字符串会根据选择的首位置依次存入,比如选择的首位置是GS005,那拆分后的字符串INEXBOT和TEST!23会依次存入变量GS005,GS006 |
| 数据存放数 | 记录拆分完成的字符串数量,可以选择不使用(选择不使用输入框置灰)和变量(INT,GINT)记录 例如:GS010=@INEXBOT@TEST!123,分隔符为@,运行分隔符拆分指令,将原有的字符串拆分为两部分INEXBOT和TEST!23,如果数据存放数选择变量GI001,指令执行完成GI001=2 |
注意事项:如果设置的分隔符在原有的字符变量中没有,那运行拆分指令后,拆分的字符还是和原来一样。
示例:
NOP
SET GS010 = #@INEXBOT@TEST!123#
STRING_SPLIT GS010 #@# GS015 GI001
END
示例说明:拆分的目标变量GS010=@INEXBOT@TEST!123,分隔符为@,执行拆分指令后GS015=INEXBOT,GS016=TEST!123,GI001=2。
STRING_LOCATE-字符串定位查询
格式:STRING_LOCATE【指令名】GS001【定位查询的变量】#T#【定义的索引符】GI001【数据存放的首个变量】GI005【数据存放数】。
功能:查询字符串变量里面的一种字符所在的位置,并把位置和数量存到指定变量。
参数:
| 参数 | 说明 |
|---|---|
| 变量 | 定位查询的字符串变量(STRING,GSTRING) |
| 待索引变量 | 手填:直接手填要定位查询的字符 变量(STRING,GSTRING):给变量赋值的形式定位查询的字符 例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是"T" 执行定位查询指令,会将"T"在字符串变量里面的位置存入到选择的变量 |
| 数据存放的首个变量 | 将查询到的数据存入到选择的变量(INT,GINT) 例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是"T" 执行定位查询指令,会将"T"在字符串变量里面的位置存入到选择的变量,比如选择的首个变量是GI001,那GI001记录的是定位到的第一个字符"T"所在的位置,GI002记录的是第二个字符"T"所在的位置,以此顺序依次读取 |
| 数据存放数 | 记录定位完成的字符数量,可以选择不使用(选择不使用输入框置灰)和变量(INT,GINT)记录 例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是"T" 执行定位查询指令,会把"T"在字符串变量里面定位到的个数存入到选择的变量,比如选择的变量是GI015,定位查询指令执行结束后,会将定位到的个数存入GI015 |
注意事项:
- 如果待索引变量在一个字符串里面是不连续的字符,在执行定位查询指令时,字符的位置和个数是无法读取出来的。
例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是"I@T"这种参数设置就无法读取。
- 如果待索引变量在一个字符串里面是连续的字符,在执行定位查询指令时,读取出来的字符位置是第一个索引变量的位置,数据存放个数为1。
例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是"BOT"这种参数设置。
示例:
NOP
SET S001 = #T#
SET GS010 = #@INEXBOT@TEST#
STRING_LOCATE GS010 S001 GI011 GI015
END
示例说明:待索引变量为S001,首先给字符串变量赋值S001=T,数据存放首个变量为GI011,数据存放数为GI015,程序运行结束后将查询到的数据记录到选择的变量。
STRING_LENGTH-字符串长度
格式:STRING_LENGTH【指令名】S001【待计算长度的变量】I001【数据存放数变量】。
功能:计算一个字符串变量的长度,并把计算的长度存到变量:
参数:
| 参数 | 说明 |
|---|---|
| 变量 | 计算字符串长度的变量(STRING,GSTRING) 例如:S001=BIANLIANG,执行字符串长度指令可以知道S001这个变量有多少个字符 |
| 数据存放的变量 | 将计算出来的字符串长度存放到变量(INT,GINT) 例如:S001=BIANLIANG,可以把S001这个变量的字符长度存入到变量 |
示例:
NOP
SET S001=BIANLIANG
STRING_LENGTH S001 I001
END
示例说明:计算变量S001的长度,将计算出来的字符串长度存入到变量I001。
STRING_TO-字符串转非字符串
格式:STRING_TO【指令名】S001【需要转译的字符串】I001【转译的目标变量】。
功能:字符串变量转换成非字符串变量。
参数:
| 参数 | 说明 |
|---|---|
| 字符串变量 | 需要转译的字符串(STRING,GSTRING) |
| 非字符串变量 | 转译的目标变量(整型,浮点型,布尔型) 例如:需要转译的变量S005=123ZIFU35,转译的目标变量为GI001,运行指令后字符串变量转换成非字符串变量,GI001=123 |
注意事项:
- 字符串变量转换成非字符串变量时只会将字符串变量的数值部分转译到非字符串变量,在转译过程中会从字符串变量的第一个字符开始转译,直到检测到的字符是非数值的字符时转译结束,将检测到的数值部分的字符转译到非字符变量,如果检测到的第一个字符就是非数值的字符,那字符串无法转译成功。
例如:S005=123ZIFU35,在转译过程中只会将字符转译"123"成非字符串变量,因为3后面的字符是非数值字符,所以后面的字符部分都不转译。
例如:S005=ZI123FU35,在检测到第一个字符时就已经是非数值字符,所以无法从字符串转到非字符串。
示例:
NOP
SET S005 = #123ZIFU35#
STRING_TO S001 D001
END
示例说明:字符串变量S005 = 123ZIFU35,将字符串变量转非字符串变量,转译的目标变量为D001,程序运行结束后D001=123。
TO_STRING-非字符串转字符串
格式:TO_STRING【指令名】I001【需要转译的变量】S001【转译的目标变量】。
功能:非字符串变量转换成字符串变量。
参数:
| 参数 | 说明 |
|---|---|
| 非字符串变量 | 需要转译的变量,手填字符或者给变量赋值形式定义字符(整型,浮点型,布尔型) |
| 字符串变量 | 转译的目标变量(STRING,GSTRING) |
注意事项:
- 如果你需要转译的变量是浮点型变量,并且只需要转译小数点后N位,在参数设定界面非字符串变量行输入的格式为:$.ND001。
例如:转译变量D001=123.1122,转译小数点后三位,在参数设定界面非字符串变量行输入的格式为:$.3D001,转译的目标变量为S001,程序运行结束后S001=123.112。
- 同时将多个非字符串转译成一个字符串。
例如:同时将D001=12.23,D002=23.345,D003=34.5678非字符串转译成字符串S001,D001转译小数点后1位,D002转译小数点后2位,D003转译小数点后3位,在参数设定界面非字符串变量行输入的格式为:$.1D001$.2D002$.3D003,程序运行结束后S001=12.223.3434.568。
示例:
NOP
SET GI001 = 123
TO_STRING GI001 S001
TO_STRING # TEST# S002
END
示例说明:程序运行结束后S001=123,S002=TEST。
输入输出类
"√"表示支持此条指令。
| 指令类型 | 前台 | 全局后台 | 局部后台 |
|---|---|---|---|
| IO输入 | √ | √ | √ |
| IO输出 | √ | √ | √ |
| 模拟输入 | √ | √ | √ |
| 模拟输出 | √ | √ | √ |
| 读取输出 | √ | √ | √ |
| 指令类型 | 指令 | 单步 | 倒序 | 试运行 | 提前执行 | 被提前执行 |
|---|---|---|---|---|---|---|
| 输入输出类 | 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 IGH#(1)
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/电流/" "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。
定时器类
| 指令类型 | 前台 | 全局后台 | 局部后台 |
|---|---|---|---|
| 延时 | √ | √ | √ |
| 指令类型 | 指令 | 单步 | 倒序 | 试运行 | 提前执行 | 被提前执行 |
|---|---|---|---|---|---|---|
| 定时器类 | 延时 | 支持 | 单步直接跳到第一行 | 支持 | 不支持 | 支持 |
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: 使用STRING-SPLIT指令,设置拆分的变量名、分隔符、数据存放的首个变量和数据存放数。例如:STRING_SPLIT GS010 #@# GS015 GI001,将GS010按@分隔,结果存入GS015开始的变量,拆分数量存入GI001。
Q: 如何计算字符串长度?
A: 使用STRING_LENGTH指令,设置待计算长度的变量和数据存放数变量。例如:STRING_LENGTH S001 I001,计算S001的长度并将结果存入I001。
Q: 如何将非字符串变量转换为字符串?
A: 使用TO_STRING指令,设置需要转译的变量和转译的目标变量。例如:TO_STRING GI001 S001,将GI001的数值转换为字符串存入S001。
Q: 如何使用字符串追加指令?
A: 使用STRING-SPELL指令,设置目标变量和目标变量追加的值。例如:STRING_SPELL(S001+#!ASD234@#),在原有变量S001的基础上追加字符!ASD234@。
Q: 如何截取字符串的一部分?
A: 使用STRING-SLICE指令,设置索引的目标变量、起始索引、结束索引和数据存放变量。例如:STRING-SLICE S010(I001,I002)S011,从S010中截取从I001到I002位置的字符串并存入S011。
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-04-20 | 初始版本 | MUZI165 |