第1章 指令系统概述
1.1 指令的定义与分类
1.2 指令库的定义与分类
1.2.1 基本指令库
1.2.2 扩展指令库
1.3 指令库的添加
1.4 指令系统使用注意事项
第2章 操作数
2.1 常量
2.2 变量
2.3 地址
2.4 函数返回值
第3章 数据类型
3.1 标准数据类型
3.2 自定义数据类型
3.2.1 数组
3.2.2 指针
3.2.3 枚举
3.2.4 结构
第4章 基本指令
4.1 算术运算指令
4.1.1 ADD——加法指令
4.1.2 MUL——乘法指令
4.1.3 SUB——减法指令
4.1.4 DIV——除法指令
4.1.5 MOD——取余指令
4.2 赋值指令
4.3 逻辑运算指令
4.3.1 AND——与指令
4.3.2 OR——或指令
4.3.3 XOR——异或指令
4.3.4 NOT——取非指令
4.4 移位指令
4.4.1 SHL——左移指令
4.4.2 SHR——右移指令
4.4.3 ROL——循环左移指令
4.4.4 ROR——循环右移指令
4.5 选择指令
4.5.1 SEL——二选一指令
4.5.2 MAX——取最大值指令
4.5.3 MIN——取最小值指令
4.5.4 LIMIT——极限值指令
4.5.5 MUX——多选一指令
4.6 比较指令
4.6.1 GT——大于指令
4.6.2 LT——小于指令
4.6.3 GE——大于等于指令
4.6.4 LE——小于等于指令
4.6.5 EQ——等于指令
4.6.6 NE——不等于指令
4.7 数据类型转换指令
4.7.1 BOOL_TO_——布尔类型转换指令
4.7.2 BYTE_TO_——字节类型转换指令
4.7.3 WORD_TO_——字类型转换指令
4.7.4 DWORD_TO_——双字类型转换指令
4.7.5 SINT_TO_——短整型转换指令
4.7.6 USINT_TO_——无符号短整型转换指令
4.7.7 INT_TO_——整数类型转换指令
4.7.8 UINT_TO_——无符号整数类型转换指令
4.7.9 DINT_TO_——双整数类型转换指令
4.7.10 UDINT_TO_——无符号双整数类型转换指令
4.7.11 REAL_TO_——实数类型转换指令
4.7.12 TIME_TO_——时间类型转换指令
4.7.13 DATE_TO_——日期类型转换指令
4.7.14 DT_TO_——日期时间类型转换指令
4.7.15 TOD_TO_——时间类型转换指令
4.7.16 STRING_TO_——字符类型转换指令
4.7.17 TRUNC——截短转换指令
4.8 初等数学运算指令
4.8.1 ABS——绝对值指令
4.8.2 SQRT——平方根指令
4.8.3 LN——自然对数指令
4.8.4 LOG——常用对数指令
4.8.5 EXP——指数指令
4.8.6 SIN——正弦指令
4.8.7 COS——余弦指令
4.8.8 TAN——正切指令
4.8.9 ASIN——反正弦指令
4.8.10 ACOS——反余弦指令
4.8.11 ATAN——反正切指令
4.8.12 EXPT——幂指令
4.9 地址运算指令
4.9.1 ADR——取地址指令
4.9.2 ^——取地址内容指令
4.9.3 BITADR——位地址指令
4.9.4 INDEXOF——索引指令
4.9.5 SIZEOF——数据类型大小指令
4.10 调用指令
4.11 初始化操作指令
4.12 字符串处理指令(Standard.lib)
4.12.1 LEN——取字符串长度指令
4.12.2 LEFT——左边取字符串指令
4.12.3 RIGHT——右边取字符串指令
4.12.4 MID——中间取字符串指令
4.12.5 CONCAT——合并字符串指令
4.12.6 INSERT——插入字符串指令
4.12.7 DELETE——删除字符指令
4.12.8 REPLACE——替换字符串指令
4.12.9 FIND——查找字符串指令
4.13 库版本信息检查指令(Util.lib)
4.14 软件版本信息指令(SysLibC16x.lib)
4.15 检查指令(Check.lib)
4.15.1 CheckBounds——数组边界检查指令
4.15.2 CheckDivByte——字节型除数为零检查指令
4.15.3 CheckDivWord——字型除数为零检查指令
4.15.4 CheckDivDWord——双字型除数为零检查指令
4.15.5 CheckDivReal——实型除数为零检查指令
4.15.6 CheckRangeSigned——整型边界检查指令
4.15.7 CheckRangeUnsigned——无符号整型边界检查指令
4.16 BCD码转换指令(Util.lib)
4.16.1 BCD_TO_INT——BCD码转整型指令
4.16.2 INT_TO_BCD——整型转BCD码指令
4.17 位/字节操作指令(Util.lib)
4.17.1 EXTRACT——位提取指令
4.17.2 PACK——位整合指令
4.17.3 PUTBIT——位赋值指令
4.17.4 UNPACK——位拆分
4.18 高等数学运算指令(Util.lib)
4.18.1 DERIVATIVE——微分
4.18.2 INTEGRAL——积分
4.18.3 STATISTICS_INT——整型统计
4.18.4 STATISTICS_REAL——实型统计
4.18.5 VARIANCE——平方偏差
4.19 控制器指令(Util.lib)
4.19.1 P——比例控制器
4.19.2 PD——比例微分控制器
4.19.3 PID——比例积分微分控制器
4.19.4 PID_FIXCYCLE——比例积分微分控制器
4.20 信号发生器指令(Util.lib)
4.20.1 BLINK——脉冲信号发生器
4.20.2 GEN——典型周期信号发生器
4.21 函数操纵器指令(Util.lib)
4.21.1 CHARCURVE——特征曲线
4.21.2 RAMP_INT——整型限速
4.21.3 RAMP_REAL——实型限速
4.22 模拟量处理指令(Util.lib)
4.22.1 HYSTERESIS——滞后
4.22.2 LIMITALARM——上下限报警
4.23 双稳态指令(Standard.lib)
4.23.1 SR——置位优先双稳态器
4.23.2 RS——复位优先双稳态器
4.24 触发器指令(Standard.lib)
4.24.1 R_TRIG——上升沿检测触发器
4.24.2 F_TRIG——下降沿检测触发器
4.25 计数器(Standard.lib)
4.25.1 CTU——递增计数器
4.25.2 CTD——递减计数器
4.25.3 CTUD——递增递减计数器
4.26 定时器(Standard.lib)
4.26.1 TP——普通定时器
4.26.2 TON——通电延时定时器
4.26.3 TOF——断电延时定时器
4.26.4 RTC——实时时钟
第5章 扩展指令
5.1 模拟量模块处理指令(Hollysys_PLC_Analog.lib)
5.1.1 Analog_IN——模拟量输入模块调用
5.1.2 Analog_OUT——模拟量输出模块调用指令
5.2 RS232自由口通讯指令(Hollysys_PLC_Comm.lib)
5.2.1 Set_COMM_PRMT——RS232自由口通讯参数设置
5.2.2 COMM_SEND——RS232自由口通讯数据发送
5.2.3 COMM_RECEIVE——RS232自由口通讯数据接收
5.2.4 Reset_COMM_PRMT——RS232恢复协议设置
5.3 RS485自由口通讯指令(Hollysys_PLC_Comm2.lib)
5.3.1 Set_COMM2_PRMT——RS485自由口通讯参数设置
5.3.2 COMM2_SEND——RS485自由口通讯数据发送
5.3.3 COMM2_RECEIVE——RS485自由口通讯数据接收
5.3.4 Reset_COMM2_PRMT——RS485恢复协议设置
5.4 Profibus-DP指令(Hollysys_PLC_DPSlave.lib)
5.5 以太网指令(Hollysys_PLC_EtherNet.lib)
5.6 正反动作PID控制器(Hollysys_PLC_Util.lib)
5.7 Modbus校验指令(Hollysys_PLC_Modbus_CRC.lib)
5.8 硬件实时时钟指令(Hollysys_PLC_HDRTC.lib)
5.8.1 Set_HD_RTC——设置实时时钟(DT数据格式)
5.8.2 Set_HD_RTC_X——设置实时时钟(普通数据格式)
5.8.3 Get_HD_RTC——读取实时时钟日期/时间/星期
5.9 实时时钟报警指令(Hollysys_PLC_HDRTCALM.lib)
5.9.1 Get_HDRTC_ALM——读取硬件实时时钟报警时间/星期
5.9.2 Set_HDRTC_ALM——设置硬件实时时钟报警时间/星期
5.10 LM3104/5实时时钟报警指令(Hollysys_PLC_HDRTCALM_N.lib)
5.10.1 GET_HDRTC_ALM——获取实时时钟中断时间
5.10.2 SET_HDRTC_ALM——设置实时时钟中断时间
5.11 多段脉冲发送(Hollysys_PLC_PTOCtrl.lib)
5.11.1 PTOCtrl_0——通道1.1多段脉冲发送
5.11.2 PTOCtrl_1——通道0.3多段脉冲发送
5.12 立即输出指令(Hollysys_PLC_IO.lib)
5.12.1 OutPut_Bit——立即输出
5.12.2 Set_INT_OutPut——设置中断立即输出
5.13 工程量转换指令(Hollysys_PLC_AnalogConvert.lib)
5.13.1 HEX_ENGIN——16进制数转换为工程量数据
5.13.2 ENGIN_HEX——工程量数据转换为16进制数据
5.14 随机数发生指令(Hollysys_PLC_Math.lib)
5.15 Modbus从站地址指令(Hollysys_PLC_Ex.lib)
5.15.1 SET_LOCAL_ADDRESS——设置Modbus从站通讯地址
5.15.2 GET_LOCAL_ADDRESS——读取Modbus从站通讯地址
5.16 模拟电位器(Hollysys_PLC_Ex.lib)
5.17 系统看门狗复位(Hollysys_PLC_Ex.lib)
5.18 单相计数(Hollysys_PLC_Ex_CT.lib)
5.18.1 HD_CTUD_T2——T2高速计数器
5.18.2 HD_CTUD_T3——T3高速计数器
5.18.3 HD_CTUD_T4——T4普通计数器
5.18.4 HD _CTU_T7——T7高速计数器
5.19 两相计数(Hollysys_PLC_Ex_DCT.lib)
5.19.1 HD_DCTUD_T2——T2两相高速计数器
5.19.2 HD_DCTUD_T3——T3两相高速计数器
5.19.3 HD_DCTUD_T4——T4两相普通计数器
5.20 两相32位计数(Hollysys_PLC_Ex_DCT32.lib)
5.21 中断定时器(Hollysys_PLC_Ex_TIMER.lib)
5.21.1 HD_TIMER_T7——中断定时器
5.21.2 HD_CLEAR_T7——重载定时器
5.21.3 HD_STOP_T7——停止定时器
5.22 外部中断(Hollysys_PLC_Ex_ExINT.lib)
5.22.1 Fast_ExINT——快速外部中断
5.22.2 Fast_ExINT_E——快速外部中断
5.23 脉冲输出指令(Hollysys_PLC_Ex_PT.lib)
5.23.1 PTO_PWM0——PTO/PWM脉冲输出
5.23.2 PTO_PWM1——PTO/PWM脉冲输出
5.24 脉冲加减速输出指令(Hollysys_PLC_Ex_PTRun.lib)
5.24.1 PTO_PWM0_RUN——PTO_PWM脉冲输出(加减速)
5.24.2 PTO_PWM1_RUN——PTO_PWM脉冲输出(加减速)
5.25 LM3106A-C01加减速脉冲输出指令(Hollysys_PLC_PTO_For_LM3106A.lib)
5.26 LM3331Modbus从站通讯指令(ModBus_Slave_For_LM3331.lib)
附录A
A.1 LM指令速查表
A.2 IEC标准指令表
A.3 指令关联冲突速查表
A.4 硬件模块状态信息
附录B
B.1 电机循环启动发送脉冲举例
B.2 Profibus-DP模块使用举例
B.3 以太网指令使用举例
B.4 中断关联事件使用举例
B.5 自由口通讯使用举例
B.6 PID控制器使用举例
B.7 高速计数器使用举例
B.8 模拟电位器使用举例