Haiwell海为PLC应用指令列表
指令类型 | 指令名称 | 8位模式 | 32位模式 | 指令功能 | 支持语言 | ||
LD | FBD | IL | |||||
比较开关 | = | LB.=、HB.= | D.= | 等于比较开关,分16位/32位/低字节/高字节 | √ | ||
<> | LB.<>、HB.<> | D.<> | 不等于比较开关,分16位/32位/低字节/高字节 | √ | |||
> | LB.>、HB.> | D.> | 大于比较开关,分16位/32位/低字节/高字节 | √ | |||
>= | LB.>=、HB.>= | D.>= | 大于等于比较开关,分16位/32位/低字节/高字节 | √ | |||
< | LB.<、HB.< | D.< | 小于比较开关,分16位/32位/低字节/高字节 | √ | |||
<= | LB.<=、HB.<= | D.<= | 小于等于比较开关,分16位/32位/低字节/高字节 | √ | |||
F.= | 浮点数等于比较开关 | √ | |||||
F.<> | 浮点数不等于比较开关 | √ | |||||
F.> | 浮点数大于比较开关 | √ | |||||
F.>= | 浮点数大于等于比较开关 | √ | |||||
F.< | 浮点数小于比较开关 | √ | |||||
F.<= | 浮点数小于等于比较开关 | √ | |||||
步进指令 | STL | 步开始 | √ | ||||
SFROM | 步合并 | √ | |||||
STO | 步转移 | √ | |||||
位指令 | AND | 逻辑与 | √ | √ | |||
OR | 逻辑或 | √ | √ | ||||
XOR | 逻辑异或 | √ | √ | ||||
OUT | 线圈输出 | √ | √ | √ | |||
SET | 置位保持 | √ | √ | √ | |||
RST | 复位 | √ | √ | √ | |||
ALT | ON/OFF交替输出 | √ | √ | √ | |||
ZRST | 批量复位 | √ | √ | √ | |||
ENO | 取ENO输出 | √ | |||||
计时器 | TON | 延时开 | √ | √ | √ | ||
TOF | 延时关 | √ | √ | √ | |||
TP | 脉冲计时器 | √ | √ | √ | |||
计数器 | CTU | D.CTU | 加计数器 | √ | √ | √ | |
CTD | D.CTD | 减计数器 | √ | √ | √ | ||
CTUD | D.CTUD | 加减计数器 | √ | √ | √ | ||
高速控制指令 | RESH | IO更新 | √ | √ | √ | ||
SHC | 单点高速计数器 | √ | √ | √ | |||
HHSC | 高速计数器 | √ | √ | √ | |||
HCWR | 写高速计数器 | √ | √ | √ | |||
SPD | 速度侦测 | √ | √ | √ | |||
PWM | 脉宽调制 | √ | √ | √ | |||
PLSY | D.PLSY | 脉冲输出 | √ | √ | √ | ||
PLSR | D.PLSR | 加减速脉冲输出 | √ | √ | √ | ||
ZRN | 原点回归 | √ | √ | √ | |||
SETZ | 设置电气原点 | √ | √ | √ | |||
PPMR | 直线插补 | √ | √ | √ | |||
CIMR | 圆弧插补 | √ | √ | √ | |||
SPLS | 单点脉冲输出 | √ | √ | √ | |||
MPTO | 多段脉冲输出 | √ | √ | √ | |||
SYNP | 随动脉冲输出 | √ | √ | √ | |||
PSTOP | 停止脉冲输出 | √ | √ | √ | |||
DVIT | 中断定位脉冲输出 | √ | √ | √ | |||
ECAM | 电子凸轮 | √ | √ | √ | |||
JOGP | 点动脉冲输出 | √ | √ | √ | |||
比较指令 | CMP | D.CMP | 比较指令 | √ | √ | √ | |
ZCP | D.ZCP | 区域比较 | √ | √ | √ | ||
MATC | D.MATC | 数值匹配 | √ | √ | √ | ||
ABSC | D.ABSC | 绝对凸轮比较 | √ | √ | √ | ||
BON | ON位判定 | √ | √ | √ | |||
BONC | D.BONC | ON位数量 | √ | √ | √ | ||
MAX | D.MAX | 最大值 | √ | √ | √ | ||
MIN | D.MIN | 最小值 | √ | √ | √ | ||
SEL | D.SEL | 条件选择 | √ | √ | √ | ||
MUX | D.MUX | 多路选择 | √ | √ | √ | ||
移动指令 | LBST | 低字节赋值 | √ | √ | √ | ||
HBST | 高字节赋值 | √ | √ | √ | |||
MOV | D.MOV | 移动 | √ | √ | √ | ||
BMOV | 块移动 | √ | √ | √ | |||
FILL | 填充 | √ | √ | √ | |||
XCH | 字节交换 | √ | √ | √ | |||
BXCH | 块交换 | √ | √ | √ | |||
SHL | 位左移 | √ | √ | √ | |||
SHR | 位右移 | √ | √ | √ | |||
WSHL | 字左移 | √ | √ | √ | |||
WSHR | 字右移 | √ | √ | √ | |||
ROL | 位循环左移 | √ | √ | √ | |||
ROR | 位循环右移 | √ | √ | √ | |||
WROL | 字循环左移 | √ | √ | √ | |||
WROR | 字循环右移 | √ | √ | √ | |||
BSHL | 字节左移 | √ | √ | √ | |||
BSHR | 字节右移 | √ | √ | √ | |||
ATBL | 添加到队列 | √ | √ | √ | |||
FIFO | 先进先出 | √ | √ | √ | |||
LIFO | 后进先出 | √ | √ | √ | |||
SORT | 数据排序 | √ | √ | √ | |||
数据转换指令 | ENCO | 编码器 | √ | √ | √ | ||
DECO | 译码器 | √ | √ | √ | |||
BTOW | 位转换为字 | √ | √ | √ | |||
WTOB | 字转换为位 | √ | √ | √ | |||
HEX | HEX.LB | ASCII转换为16进制 | √ | √ | √ | ||
ASCI | ASCI.LB | 16进制转换为ASCII | √ | √ | √ | ||
BUNB | 离散位组合到连续位 | √ | √ | √ | |||
BUNW | 离散位组合到连续字 | √ | √ | √ | |||
WUNW | 离散字组合到连续字 | √ | √ | √ | |||
BDIB | 连续位分散到离散位 | √ | √ | √ | |||
WDIB | 连续字分散到离散位 | √ | √ | √ | |||
WDIW | 连续字分散到离散字 | √ | √ | √ | |||
BCD | D.BCD | BIN转换为BCD | √ | √ | √ | ||
BIN | D.BIN | BCD转换为BIN | √ | √ | √ | ||
ITOL | 整数转换为长整数 | √ | √ | √ | |||
GRAY | BIN转换为GRAY码 | √ | √ | √ | |||
GBIN | GRAY码转换为BIN | √ | √ | √ | |||
字符指令 | GHLB | 得出高低字节 | √ | √ | √ | ||
GETB | 截取字节串 | √ | √ | √ | |||
BCMP | BCMP.LB | 字节串比较 | √ | √ | √ | ||
ITOC | D.ITOC | 整数转换为字符 | √ | √ | √ | ||
CTOI | 字符转换为整数 | √ | √ | √ | |||
FTOC | 浮点数转换为字符 | √ | √ | √ | |||
CTOF | 字符转换为浮点数 | √ | √ | √ | |||
数学运算指令 | WNOT | D.WNOT | 取反 | √ | √ | √ | |
WAND | D.WAND | 与运算 | √ | √ | √ | ||
WOR | D.WOR | 或运算 | √ | √ | √ | ||
WXOR | D.WXOR | 异或运算 | √ | √ | √ | ||
ADD | D.ADD | 加法 | √ | √ | √ | ||
SUB | D.SUB | 减法 | √ | √ | √ | ||
INC | D.INC | 加1 | √ | √ | √ | ||
DEC | D.DEC | 减1 | √ | √ | √ | ||
MUL | D.MUL | 乘法 | √ | √ | √ | ||
DIV | D.DIV | 除法 | √ | √ | √ | ||
ACCU | D.ACCU | 累加 | √ | √ | √ | ||
AVG | D.AVG | 平均值 | √ | √ | √ | ||
ABS | D.ABS | 绝对值 | √ | √ | √ | ||
NEG | D.NEG | 求2的补码 | √ | √ | √ | ||
浮点数指令 | FCMP | 浮点数比较 | √ | √ | √ | ||
FZCP | 浮点数区域比较 | √ | √ | √ | |||
FMOV | 浮点数移动指令 | √ | √ | √ | |||
FADD | 浮点数加法 | √ | √ | √ | |||
FSUB | 浮点数减法 | √ | √ | √ | |||
FMUL | 浮点数乘法 | √ | √ | √ | |||
FDIV | 浮点数除法 | √ | √ | √ | |||
FACCU | 浮点数累加 | √ | √ | √ | |||
FAVG | 浮点数平均值 | √ | √ | √ | |||
FMAX | 浮点数最大值 | √ | √ | √ | |||
FMIN | 浮点数最小值 | √ | √ | √ | |||
FTOI | 浮点数转换为整数 | √ | √ | √ | |||
ITOF | D.ITOF | 整数转换为浮点数 | √ | √ | √ | ||
FABS | 浮点数绝对值 | √ | √ | √ | |||
FSQR | 浮点数平方根 | √ | √ | √ | |||
FSIN | 正弦值 | √ | √ | √ | |||
FCOS | 余弦值 | √ | √ | √ | |||
FTAN | 正切值 | √ | √ | √ | |||
FASIN | 反正弦 | √ | √ | √ | |||
FACOS | 反余弦 | √ | √ | √ | |||
FATAN | 反正切 | √ | √ | √ | |||
FLN | 自然对数 | √ | √ | √ | |||
FLOG | 以10为底的对数 | √ | √ | √ | |||
FEXP | 自然指数 | √ | √ | √ | |||
FRAD | 角度转换为弧度 | √ | √ | √ | |||
FDEG | 弧度转换为角度 | √ | √ | √ | |||
FXY | 指数指令 | √ | √ | √ | |||
时钟指令 | TCMP | 实时时钟比较 | √ | √ | √ | ||
TACCU | 时间累计 | √ | √ | √ | |||
SCLK | 设置时钟 | √ | √ | √ | |||
TIME | 时间开关 | √ | √ | √ | |||
DATE | 日期开关 | √ | √ | √ | |||
INVT | 倒计时 | √ | √ | √ | |||
通讯指令 | SUM | SUM.LB | SUM累加和校验 | √ | √ | √ | |
BCC | BCC.LB | BCC校验 | √ | √ | √ | ||
CRC | CRC.LB | CRC校验 | √ | √ | √ | ||
LRC | LRC.LB | LRC校验 | √ | √ | √ | ||
COMM | COMM.LB | 串行通讯 | √ | √ | √ | ||
MODR | Modbus读 | √ | √ | √ | |||
MODW | Modbus写 | √ | √ | √ | |||
HWRD | Haiwellbus读 | √ | √ | √ | |||
HWWR | Haiwellbus写 | √ | √ | √ | |||
RCV | 接收通讯数据 | √ | √ | √ | |||
XMT | XMT.LB | 发送通讯数据 | √ | √ | √ | ||
FROM | 扩展模块CR数据读取 | √ | √ | √ | |||
TO | 扩展模块CR数据写入 | √ | √ | √ | |||
TCPMDR | Modbus TCP读 | √ | √ | √ | |||
TCPMDW | Modbus TCP写 | √ | √ | √ | |||
TCPHWR | Haiwellbus TCP读 | √ | √ | √ | |||
TCPHWW | Haiwellbus TCP写 | √ | √ | √ | |||
中断指令 | ATCH | 中断绑定 | √ | √ | √ | ||
DTCH | 中断释放 | √ | √ | √ | |||
ENI | 允许中断 | √ | √ | √ | |||
DISI | 禁止中断 | √ | √ | √ | |||
程序控制指令 | MC | 主控 | √ | √ | √ | ||
MCR | 主控清除 | √ | √ | √ | |||
FOR | 循环指令 | √ | √ | √ | |||
NEXT | 循环结束 | √ | √ | √ | |||
WAIT | 延时等待 | √ | √ | √ | |||
CALL | 调用子程序 | √ | √ | √ | |||
EXIT | 条件返回 | √ | √ | √ | |||
REWD | 扫描时间复位 | √ | √ | √ | |||
JMPC | 条件跳转 | √ | √ | √ | |||
LBL | 跳转标号 | √ | √ | √ | |||
特殊功能指令 | GPWM | 通用脉宽调制 | √ | √ | √ | ||
FTC | 模糊温度控制 | √ | √ | √ | |||
PID | PID控制 | √ | √ | √ | |||
HAL | D.HAL | 上限报警 | √ | √ | √ | ||
LAL | D.LAL | 下限报警 | √ | √ | √ | ||
LIM | D.LIM | 范围限制 | √ | √ | √ | ||
SC | D.SC | 线性变换 | √ | √ | √ | ||
VC | 阀门控制 | √ | √ | √ | |||
TTC | 温度曲线控制 | √ | √ | √ | |||
APID | 自整定PID | √ | √ | √ |
指令通用说明
● En使能输入:En为指令的使能输入端,只有当En有电(ON)时,指令被执行,否则指令不执行。
● Eno使能输出:Eno为指令的使能输出端,指示该指令是否被正确执行。当En有电(ON)并且指令被正确执行时那么Eno输出有电(ON),当En没有电(OFF)或者指令在执行时出现错误(例如:指令参数不正确)那么Eno输出没有电(OFF)。在LD、FBD语言的应用指令中,大部分的指令均有Eno使能输出端,所有IL指令均无Eno输出端,由专用于IL语言的ENO指令代替。
● LD语言无AND、OR、XOR三个指令,由逻辑链路代替。
● 32位指令在16位指令名称前加“D.”,表示使用2个连续的寄存器。如加法指令ADD,16位加法为ADD,32位加法为D.ADD。
● 8位指令在16位指令名称后面加“.LB”,表示只使用寄存器的低字节。如串行通讯指令COMM,16位指令为COMM,8位指令为COMM.LB。
● 对于一些指令的参数端将自动占用几个连续元件的情况,在编写程序时要特别注意,应避免元件被重用而使程序执行不正确。
注:
除了CV48~CV79为32位寄存器外(共32个),Haiwell(海为)PLC的其他寄存器(AI、AQ、V、SV、LV、TV、CV、P)都是16位寄存器,一个16位寄存器由2个字节组成,一个32位寄存器由2个连续的16位寄存器组成。
海为公众号
海为云APP
厦门海为科技有限公司
0592-3278716 (技术) | 4000-360-362 (商务)
海为总部:厦门市集美区软件园三期C03栋13-14层 | 制造中心:厦门市翔安区火炬高新区(翔安)产业区垵边南路336-2号4楼