引言
INTRODUCTION
PLC 编程是实现工业自动化的关键环节,而掌握常用指令则是 PLC 编程的基础。本期我们汇总了西门子PLC编程中常用的一些指令,帮助大家更好地理解和应用 PLC 编程。
(工控萌新请收藏反复浏览~工控大佬请转发给工控萌新)
(以西门子PLC S7-1200,S7-1500为例进行说明)
位逻辑指令
位逻辑指令是 PLC 编程中最基本的指令,用于处理二进制信号(0 或 1)。
常见的位逻辑指令包括:
-| |-:常开触点,当操作数的信号状态为“1”时,常开触点关闭。
-| / |-:常闭触点,当操作数的信号状态为“1”时,常闭触点打开。
-(R)-:复位输出,用于将指定操作数的信号状态复位为“0”。
-(S)-:置位输出,用于将指定操作数的信号状态置位为“1”。
-| P |-:扫描操作数的信号上升沿,用于确定所指定操作数的信号状态是否从“0”变为“1”。
-| N |-:扫描操作数的信号下降沿,用于确定所指定操作数的信号状态是否从“1”变为“0”。
更多位逻辑指令请见下图:
定时器指令
定时器指令用于实现时间控制功能,常见的定时器指令包括:
TP:生成脉冲,可以将输出Q的设置为预设的一段时间。
TON:生成接通延时,可以将Q输出的设置延时PT中指定的一段时间。
TOF:生成关断延时,可以将Q输出复位预设的一段时间PT。
更多定时器指令请见下图:
计数器指令
计数器指令用于对输入信号的次数进行计数,常见的计数器指令包括:
CTU:加计数,用于递增输出CV的值。
CTD:减计数,用于递减输出CV的值。
CTUD:加减计数,用于递增和递减输出CV的计数器值。
计数器指令请见下图:
比较指令
比较指令用来对两个操作数进行比较,常见的比较指令包括:
CMP==:等于,用于判断第一个比较值是否等于第二个比较值。
CMP>:大于,用于判断第一个比较值是否大于第二个比较值。
CMP<:小于,用于判断第一个比较值是否小于第二个比较值。
更多比较操作指令请见下图:
数学函数指令
数学函数指令用来对操作数进行数学运算,常见的数学函数指令包括:
ADD:加,用于将输入IN1的值与输入IN2的值相加。
SUB:减,用于将输入IN2的值从输入IN1的值中减去。
MUL:乘,用于将输入IN1的值与输入IN2的值相乘。
DIV:除,用于将输入IN1的值除以输入IN2的值。
更多数学函数指令请见下图:
移动操作指令
移动操作指令用来对数据进行移动,组合等操作,常见的移动操作指令包括:
MOVE:移动值,用于将IN输入处操作数中的内容传送给OUT1输出的操作数中。
MOVE_BLK:块移动,用于将一个存储区的数据移动到另一个存储区中。
SWAP:交换,用于更改输入IN中字节的顺序,并在输出OUT中查询结果。
更多移动操作指令请见下图:
转换操作指令
转换操作指令用来对数据进行转换,取整,标准化等操作,常见的转换操作指令包括:
CONVERT:转换值,用于读取参数IN的内容,并根据指令框中选择的数据类型对其进行转换。
SCALE_X:缩放,通过将输入VALUE的值映射到指定的值范围内,对该值进行缩放。
NORM_X:标准化,通过将输入VALUE中变量的值映射到线性标尺对其进行标准化。
更多转换操作指令请见下图:
程序控制指令
程序控制指令用来实现程序跳转等操作,常见的程序控制指令包括:
-(JMP):若RLO=“1”则跳转,用于中断程序的顺序执行,并从其他程序段继续执行。
LABEL:跳转标签,可以使用跳转标签来标识一个目标程序段。
更多转换操作指令请见下图:
字逻辑运算指令
字逻辑运算指令用来实现字的“与”,“或”等运算,常见的字逻辑运算指令包括:
AND:“与”运算,用于将输入IN1的值和输入IN2的值按位进行“与”运算,并在输出OUT中查询结果。
OR:“或”运算,用于将输入IN1的值和输入IN2的值按位进行“或”运算,并在输出OUT中查询结果。
更多转换操作指令请见下图:
移位和循环指令
移位和循环指令用来实现操作数的按位移动,常见的移位和循环指令包括:
SHR:右移,用于将输入IN中操作数的内容按位向右移位,并在输出OUT中查询结果。
SHL:左移,用于将输入IN中操作数的内容按位向左移位,并在输出OUT中查询结果。
更多转换操作指令请见下图: