罗克韦尔(AB)PLC,基础指令集讲解(2)计时器与计数器
利用TON指令在预置时间内计时完成去控制输出的接通或断开. 当阶梯为真时,TON指 令开始累加计时,直至下列条件之一发生为止:
● 累加值等于预置值.
●阶梯变假.
●复位计时器.
●相关的SFC步变无效.
一旦阶梯条件变假,不论计时器是否到时,处理器都复位累加值. 可见每一个TON必须使 用一个计时器元素(如 ),并提供下列参数:
(1) 预置值(Present):用以设置预定时间, 以一个16位的整数值放置,范围0~32767.
(2) 累加值(Accum):是一个动态值,告诉用户目前已经延时的数值,计时器复位时,其值为
0. TON的操作及其相应的状态可用下表描述.
阶梯条件
EN(有效位)
TT(计时位)
DN(完成位)
说明
假
0
0
0
不计时
真
1
1
0
正在计时,累积 值〈预置值
真
1
0
1
累积值>=预置 值,计时完成
用复位指令RES
0
0
0
ACC=0,PRE不变,计时器复 位
TON指令举例
当 limit_switch_ 1 被置位时,light_2 接通 180 毫秒(timer_ 1 计时). 当timer_ 1 的累加值.ACC 达到 180 时, light_3 接通. 而且保持导通直到 TON 指令被禁止. 如果在 timer_ 1 正计时时 limit_switch_ 1 断开,则关断 light_2.
2 . 延时断开计时器指令(TOF)
TOF指令在阶梯条件变假时开始累加计时直至下列条件之一产生:
●累加值等于预置值.
●阶梯条件变为真
●相关的 SFC 步变无效. 一旦阶梯条件变真,不论计时器是否到时,处理器都复位累加值. 各 参数的含义与 TON 相同.TOF 的操作及其相应的状态可用下表描述.
一旦阶梯条件变真, 不论计时器是否到时, 处理器都复位累加值. 各参数的含义与 TON 相 同.TOF 的操作及其相应的状态可用下表描述.
阶梯条件
EN(有效位)
TT(计时位)
DN(完成位)
说明
真
1
0
1
计时器不计时,ACC=0,计 时器复位
假
0
1
1
正在计时,累积值〈预置值
假
0
0
0
累积值=预置值,计时完成
由于RES指令将对正在计时的计时器累加值,完成位和计时位进行复位,所以不可用 RES复位指令复位 TOF. TOF指令举例
当 limit_switch_2 被清零时,light_2 接通 180 毫秒(timer_2 计时). 当 timer_2 的累加值.ACC 达 到 180 时, light_2 断开同时 light_3 接通.而且保持导通直到 TOF 指令被使能.如果在 timer_2 正计时时 limit_switch_2 被置位,则关断 light_2.
3. 保持型计时器 RTO
RTO指令在阶梯条件为真, 开始计时, 直到累加值达到预置值为止。 下列条件发生时, RTO指令保持其累加值:
●阶梯变假。
●用户改变到编程方式。
●处理器出错或断电。
●相关的 SFC 步变无效。 当处理器重新运行或阶梯变真时, 计时器从保持的值开始续计时。 由于保持累加值, 所以在阶梯为真的时间内保持型计时器测量了累加时间。如果 RTO 阶梯 条件变假后, 要复位其累加值和状态位, 用户需在另一条阶梯中编写具有相同地址的复位指 令 RES。
RTO 指令举例:
当 limit_switch_ 1 被置位时,light_ 1 接通 180 毫秒(timer_3 计时). 当timer_3 的累加值.ACC 达到 180 时, light_ 1 断开同时 light_2 接通.而且 light_2 保持导通直到 timer_3 被复位。如果 在 timer_3 正计时时 limit_switch_2 被清零,则 light_ 1 保持导通。当 limit_switch_2 被复位时, RES 指令复位 timer_3 (清零状态位和.ACC)。
4. 加计数指令 (CTU )
CTU指令是一条输出指令。
操作数:
操作数
数据类型
格式
说明
计数器
COUNTER
标签
计数器结构
预置值
DINT
立即数
计数次数
累加值
DINT
立即数
计数器已经计数的次数, 一般初始值为0
计数器结构:
助记符
数据类型
说明
.CU
B00L
加计数使能位—标识CTU指令 被使能
.DN
B00L
完成位—标识累加值 (.ACC) >=(预置值.PRE)
.0v
B00L
益出位—标识计数器超过上 限值2147483647。然后计数器 返回到-2147483648。并再开 始加计数
.PRE
DINT
预置值—指定在指令置位完 成位 (.DN) 之前累加值所达 到的值
.ACC
DINT
累加值—表示指令已经计数 的梯级转换的次数。
说明: CTU 指令向上计数。 如果指令被使能时加计数使能位 (.CU) 是清零状态, 则 CTU 指令使计数器加 1。如果指令被使能位(.CU) 是置位状态, 或指令被禁止, CTU 指令 保持它的累加值 (.ACC)。 即使完成位(.DN) 被置位之后, 累加值也继续增加。如果要清 零累加值, 可以用一条引用同一计数器结构的 RES 指令, 或写 0 值到计数器的累加值。 CTU 指令举例:
limit_switch_ 1 由禁止变为使能 10 次之后, 完成位.DN 被置位。并且接通 light_ 1。如果 limit_switch_ 1 继续由禁止变为使能, 则计数器 counter_ 1 继续增加它的计数值, 且完成位.DN 保持置位状态。当 limit_switch_2 被使能时, RES 指令复位 counter_ 1 (清零状态位和.ACC
值) 并且关断 light_ 1。
5. 减计数指令 (CTD )
CTD 指令是一条输出指令。
操作数:
操作数
数据类型
格式
说明
计数器
COUNTER
标签
计数器结构
预置值
DINT
立即数
计数次数
累加值
DINT
立即数
计数器已经计数的次 数, 一般初始值为0
计数器结构:
助记符
数据类型
说明
.CD
BOOL
减计数使能位—标识CTD指 令被使能
.DN
BOOL
完成位—标识累加值(.ACC) (预置值.PRE)
.UN
BOOL
下出位—标识计数器超过下 限值-2147483648。然后计数 器返回到2147483647。在开始 减计数
.PRE
DINT
预置值—指定在指令置位完 成位 (.DN) 之前累加值所达 到的值
.ACC
DINT
累加值—表示指令已经计数 的梯级转换的次数。
说明: CTD 指令向下计数。 如果指令被使能时减计数使能位 (.CD) 是清零状态, 则 CTD 指令使计数值减 1。如果指令被使能时减计数位(.CU) 置位, 或指令被禁止, 则 CTD 指令保持它的累加值 (.ACC)。 即使完成位(.DN) 被置位之后, 累加值也继续减少。如果 要清零累加值, 可以用一条引用同一计数器结构的 RES 指令, 或写 0 值到计数器的累加值。 CTD 指令举例:
传送装置把零件带到缓存区。每进入一个零件, limit_switch_ 1 被使能且 counter_ 1 的累 加值加 1。每取出一个零件 limit_switch_被使能且 counter_ 1 的累加值减 1。如果有 100 个零 件进入缓存区(置位 counter_ 1 的完成位.DN), 则关断传送装置 A , 在缓存区有空间之前, 不用传送零件进入缓存区。
6. 复位指令 (RES )
RES 指令是一条输出指令。
操作数:
操作数
数据类型
格式
说明
结构
TIMER CONTROL
COUNTER
标签
复位的结构
罗克韦尔PLC指令大全,网上不多的资料!建议收藏
小舒一直以来都是发西门子PLC为主,不是因为严重偏科哈。是因为接触的都是以西门子的比较多,而且目前市面上西门子的占比也是比较不错的。昨天有位小伙伴私信给我,说想要小舒发一点罗克韦尔的PLC指令资料。那小舒今天就整理一篇,供大家学习一下!有误的地方也请大家不吝赐教哦~~
罗克韦尔控制器指令大全
一、位指令
用于监视和控制位状态
XIC:检查是否闭合指令
XIO:检查是否断一开指令
OTE:输出激励指令
OTL:输出锁存指令
OTU:输出解锁指令
ONS:一次启动指令
OSR上升沿一次启动指令
OSF下升沿一次启动指令
二、计时器和计数器指令
TON延时导通计时器指令
TOF延时断开计时器指令
RTO保持导通计时器
CTU加计数指令
CTD减计数指令
RES复位指令
三、比较指令
CMP比较指令
EQU等于指令
GEQ大于或等于指令
GRT大于指令
LEQ小于或等于指令
LES小于指令
LIM极限比较指令
MEQ屏蔽等于指令
NEQ不等于指令
四、计算/算术指令
CPT计算指令
ADD加法指令
SUB减法指令
MUL乘法指令
DIV除法指令
SQR平方根指令
NEG取反指令
五、传送/逻辑指令
MOV传送指令
MVM屏蔽传送指令
BTD位域分配
CLR清零指令
AND按位与指令
OR按位或指令
XOR按位异或指令
NOT按位非指令
六、其它
FAL对数组内的数进行算术、逻辑、移位、函数运算:执行存储在数组内数据的算术、逻辑、移位、和函数运算。用位置值(POS)提供整个数组的顺序级数。
EN:使能位,表FAL被使能
DN:当指令处理完最后一个元素时(POS=LIN)完成位被置位
ER:在计算表达式时发生溢出(SV被置位)则错误位被置位
LEN:指定FAL指令操作的数组内元素的数量
POS:位置值包含指令正访问的当前元素的位置。CONTROL:运算的控制结构体
LENGTH:要处理的数组元素的数量
POSITION:数组内当前元素的位置,(一般为0)
MODE:对数组内元素的操作模式,选择增量(INC)、整体(ALL)、或输入一个数值
DEST:目的单元
EXPRESSION:表达式
FSC 搜索并比较数组内数值:一个元素一个元素的比较数组内的值,对于逻辑运算,用户必须在表达式内说明。若FSC指令被使能,且比较结果为真,则指令置发现位(FD)及其位置位(POS),表明指令发现的比较为真的数组位置。
COP 复制一个数组的内容到另一个数组:复制源操作数的数值到目的单元,源操作数不变。字节数量=长度*(目的单元数据类型的字节数),COP指令为不写出数组的未尾。对存储器内的相邻的数据进行操作,且执行存储器内字节到字节的直接复制。
FLL 用指定的数据填充数组:用源值填充一个数组内的元素。源保持不变。填充字节的数量是:字节数=长度*(目的单元数据类型的字节数),对存储器内的相邻的数据进行操作AVE计算数值内的一组数值的平均值:
SRT 按上升顺序排序数组内的一维数据:以上升的顺序对数值内的一维数组进行排序。
STD 计算数值内的一组数值的标准偏差:计算数组中一维数组内一组值的标准偏差,存储结果于目的单元数组(文件)/移位指令:用数组(文件)/移位指令修改数组内数据的位置
BSL/R 每次完成对位数组中一位的装载、移动或卸载操作:使数组内的指定位向左(右)移动一个位置,当指令被使能时,把指定位的最高位卸载到卸载位UL),其余的位向左(右)移动一个位置,并且装截位地址于数组的位0内。对连续存储单元单元进行操作。
FFL/U 按相同的顺序装截或卸载数据:FFL指令复制源值到FIFO内,用FFL和FFU指令存储数据,并且可按先进/先出的顺序取回数据。当使用该指令对时,FFL和FFU指令建立了一个异步移位寄存器。当指令被使能时,FFL指令把源值装入由位置值(POS)确定的FIFO内的位置,每次指令被使能装载一个数值,直到FIFO满为止。源操作数和FIFO用相同的数据类型。FFL指令对连续存储单元进行操作。FFU指令卸载FIFO的位置0(第一位置)的数值并存放该值于目的单元。FIFO内的其余数据向下移动一个位置。FFU指令一起按选进/先出的顺序存储和返回数据。当指令被使能时,FFU指令从FIFO的第一个元素卸载数据并存放该值于目的单元,指令每次被使能时卸载一个数值,直到FIFO栈空为止。如果FIFO为空,则FFU指令向目的单元返回0值。
LFL/U 按相反的顺序装截或卸载数据:LFL指令复制源值到LIFO内,用LFL和LFU指令存储数据,并且可按后进/先出的顺序取回数据。当使用该指令对时,LFL和LFU指令建立了一个异步移位寄存器。当指令被使能时,LFL指令把源值装入由位置值(POS)确定的LIFO内的位置内,每次指令被使能装载一个数值,直到LIFO栈满为止。源操作数和LIFO用相同的数据类型。LFL指令对连续存储单元进行操作。LFU指令卸载LIFO的位置值(POS)内的0值于该位置,LFU和LFL指令一起按后进/先出的顺序存储和返回数据。
LIFO 必须和目的单元数据类型一致。当指令被使能时,LFO指令从LIFO的位置值(POS)内的数值并存该值于目的单元,指令每次被使能时都卸载一个数值并用0值替换该值,直到LIFO栈空为止。如果LIFO为空,则LFU指令返回0值到目的单元。
顺序器指令: 监控一致性且重复性操作
SQI
顺序器输入指令:检测SQO/SQI顺序器指令对何时完成一步。当指令被使能时,SQI指令通过屏蔽使源
元素与一个数组元素作相等的比较SQI指令对连续存储器单元进行操作。输入立即数作为屏蔽值。
SQO
顺序器输出指令:SQO指令设置SQO/SQI顺序器指令对下一步输出条件。当指令被使能时,SQO指令增加位置值,通过屏蔽传送该位置内的数据,并把结果存入目的单元,若位置值(POS)〈长度值(LEN),则指令返回到顺序器数组的开始处,并从位置值(POS)处继续执行。SQO指令对连续存储器单元进行操作。输入立即数作为屏蔽值。
SQL
顺序器半装载指令:把参考条件装入顺序器数组内,当指令使能时,SQL指令增加位置值到顺序器数组的下一个位置,并装载源数值到该位置。若完成位被置位或位置值(POS)〈长度值(LEN),则指令设置位置值(POS)=1
程序控制指令: 用程序控制指令改变程序的流程
JMP/ LBL
跳转到标号指令(JMP):当指令被使能时,JMP跳到其引用的LBL指令,控制器从该处继续继续执行:
当指令被禁止时,JMP不影响梯形图程序的执行。JMP可向前或向后跳转执行梯形图程序,向前跳转到标号可通过略过部分梯形图逻辑直到需要的程序,从机时节省程序扫描时间。向后跳使控制器重复执行梯形图逻辑。向后跳次数不要太多,否则看门狗定时器可能超时,因控制器不能到达程序的未尾,而导致控制器故障。
LBL 是具有同一标号名称的JMP指令的跳转目标,要确保LBL是其所在梯级的第一条指令。在一个程序内标号名称必须是唯一的,标号名称可是:最多有40个字符,可包含字母、数字、和下划线。
JSR
跳转到子程序指令JSR:JSR、SBR和RET指令使逻辑执行转到程序中的独立的子程序,对子程序进行一次扫描,然后返回到程序的转移点。
当指令被使能时,若有输入参数,JSR传递它的输入参数,并使执行转到子程序的第一梯级。SBR指令接收输入参数并复制这些到指定的标签。JSR输入参数的数量和类型需与SBR指令相匹配。JSR输入参数的数量比相应的SBR指令输入参数少,控制器出现主要错误,JSR输入参数的数量多没关系。
用户可使用SBR指令而不输入参数,表明其驻留的程序是子程序,不能把SBR放入主程序内。要返回参数到JSR指令,必须使用RET指令结束子程序,一个子程序可有多条RET指令。子程序指令SBR、返回指令RET。
JSR、SBR和RET 指令通过数值把参数传入或传出子程序。需使用额外的执行时间和存储器来复制数值。
TND
暂停指令: 当指令被使能,TND指令担当程序的未尾,若控制器扫描到一条TND指令,则控制器转移到当前程序的结束处。若TND在一个子程序内,则控制返回到调用它的程序。若TND在一个主程序内,则控制返回到当前程序的下一个程序。可在调试或故障诊断时使用TND指令使程序执行到一确定点。然后在程序内进一步移动TND指令到需调试程序的新部分。
MCR
主控复位指令: 成对使用,当MCR区域被使能时,在MCR区域内的梯级的为真或为假条件被正常扫描。
必须成对使用,不能在MCR区域内嵌套另一个MCR区域,不要跳转到MCR区域,若MCR区域持续到程序的未尾,则不必在区域的结束处编制一条MCR指令。
UID
禁止用户中断指令: 被使能时则继续执行当前任务,需不能被高优先级的任务中断,除非执行UIE指令或到程序的未尾,UID指令不能能禁止一个故障子程序或故障任务。当指令被使能时,UID指令增加内部计数器的数值,只要计数器的值不为零,当前执行的任务就不会被中断。
UIE
用户中断使能指令:被使能且内部计数器的值大于零,则计数器的值减少,当计数器的值等于零时,当前执行的任务可再次被中断,此时执行任何先前被禁止中断的高优先级任务。
AFI
恒假指令:设置它的梯级输出条件为假
NOP
空操作指令:NOP的功能相当于占符位,编程时可放置NOP于梯级的任何地方,当指令被使能时NOP执行空操作,当指令被禁止时,NOP指令也执行空操作。
循环/禁止循环指令:用FOR重复调用子程序,用BPK指令中断一个子程序的执行。
FOR
重复执行子程序:当指令被使能时,FOR重复执行子程序,直到索引值超过终止值。该指令不向子程序传递参数。每次FOR执行子程序时,它都把每步大小加到索引值。不要在单次扫描循环太多次,重复次数太多可引起控制器的看门狗超时,这会导致主要故障。
BRK
终止循环指令:中断被FOR指令调用的子程序的执行。当指令被使能时,BRK指令离开当前子程序并使控制器返回到FOR指令的下一条指令。若存在嵌套的FOR指令,则BRK指令使控制返回到FOR指令的最内层。
RET
返回指令:返回到调用的FOR指令,FOR不使用操作数,FOR忽略用户输入到RET指令的任何参数。当使能时,RET返回到FOR指令,FOR指令以每步大小为单位增加索引值,并再次执行子程序,若索引值超过终止值,则FOR指令完成,而且程序执行转移到FOR指令的下一条指令。用户可用TND指令结束子程序的执行。
专用指令: 执行特殊应用操作
FBC
文件位比较:当指令使能时,比较源数组内的位与参考数组内的位,并且记录每个不匹配的位号于结果数组内。与DDT区别:每次DDT发现一个不匹配位,该指令改变参考位的值使之与原数组内的位匹配,而FBC不改变参考位的值。
DDT
诊断检测:当指令使能时,比较源数组内的位与参考数组内的位,并且记录每个不匹配的位号于结果数组内,而且改变参考数组内位的值,使其与相应的源数组内的位的数值相配。
DTR
数据传送指令:通过屏蔽传递源值并使其结果与参考值比较,同时也用屏蔽的源值覆盖参考值,用于下一次比较,源值保持不变。
屏蔽操作数内的一个1意味着通过位数据,一个0意味着位数据被阻止。当通过屏蔽后的源值与参考值不一致时,梯级输出条件为真一个扫描周期,若屏蔽的源值与参考值相同,则梯级输出条件为假。输入立即数为作为屏蔽值。
PID
比例、积分、微分指令:接收来自模拟量输入模块的过程变量(PV),并通过模拟量输出模块调节控制变量输出(CV),使能位(EN)表指令在执行状态PID通过防止CV输出达到其由MAXO和MINO设定的最大或最小值时,积分项继续累加来自动避免积分饱和。累加的积分项保持不变,直到CV输出降到其最大上限值以下,或升到其最小下限值以上,然后正常的积分累加值自动从新开始。
PID自动提供由软件手动模式到自动模式,或手动模式到自动模式的无冲击转换。要禁止微分平滑作用,可在配置制表栏中选择“禁止微分平滑(no derivative smoothing)”选项或在PID结构体中置位NDF位。
三角函数指令: 用三角函数来进行算术运算
SIN
正弦指令:计算源操作数的正弦值(以弧度表示),存结果于目的单元内。源值必须大于或等于-205887.4且小于205887.4,目的单元内的结果数值总大于或等于-1且小于或等于1
COS
余弦指令:计算源操作数的余弦值(以弧度表示),存结果于目的单元内,同上
TAN
正切指令:计算源操作数的正切值(以弧度表示),存结果于目的单元内。 源值必须大于或等于-102943.7且小于102943.7
ASN
反正弦指令:计算源操作数的反正弦值,存结果于目的单元内(以弧度表示)。源值必须大于或等于-1且小于或等于1,目的单元内的结果数值总大于或等于-2π且小于或等于2π。
ACS
反余弦指令:计算源操作数的反余弦值,存结果于目的单元内(以弧度表示)。源值必须大于或等于-1且小于或等于1,目的单元内的结果数值总大于或等于0且小于或等于π。
ATN
反正切指令:计算源操作数的反正切值,存结果于目的单元内(以弧度表示),源值必须大于或等于-1且小于或等于1,目的单元内的结果数值总大于或等于-π/2且小于或等于π/2。
高级算术指令:
LN
自然对数指令:计算源操作数的自然对数并存结果于目的单元内。源数值必须大于零,否则S:V被置位。目的单元结果值大于或等于-87.33655且小于或等于88.72284.
LOG
以10为底的对数指令: 计算源操作数的以10为底的对数并存结果于目的单元内。源数值必须大于零,否则S:V被置位。目的单元结果值大于或等于-37.92978且小于或等于38.53184.
XPY
X的Y次幂指令:计算源A(X)的源B(Y)次幂并存结果于目的单元。若源A是负数,则源B必须是一个整数值,否则将发生次要错误.
数学转换指令:
DEG
转换弧度为角度:转换源值(以弧度表示)为角度并存结果于目的单元内。
RAD
转换角度为弧度:转换源值(以角度表示)为弧度并存结果于目的单元内。
TOD
转换整数值为BCD码:转换一个十进制的值(0≤源操作数≤99999999)为BCD码并存结果于目的单元内。
若输入源操作数为一个负数,则发生次要错误并清零目的单元。
FRD
转换BCD码为整数值:转换一个BCD码值为十进制值并存结果于目的单元内。
相关问答
plc中RLO什么意思?
在PLC中,RLO=“逻辑运算结果”,在二进制逻辑运算中用作暂时存储位。RLO即resultoflogicoperation状态字的第一位称为逻辑运算结果,该位用来存储执行位...
麻烦请教各位!RTO控制柜接线有什么标准吗?在线等
[回答]顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序...
RTO控制柜接线都有哪些规格型号?
[回答]顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序...
RTO什么意思?
RTO(RegenerativeThermalOxidizer,简称百RTO),蓄热式氧化炉。其原理是在高温下将可燃废气氧化成对应的氧化物和水,从而净化废气,并回收废气分解度时所释放...
plc定时器定义?
PLC定时器是程序可编程控制器中的一个功能模块,用于控制某个事件或操作在特定时间间隔内执行或停止。它一般包含计时器值、设定值、当前时间等参数。PLC定时器...
plc选用哪种熔断器?
确定plc攻率大小在选熔断器。有RTo.RL.确定plc攻率大小在选熔断器。有RTo.RL.
RTO蓄热式燃烧有什么特点?
[回答]蓄热式焚烧炉RTO废气处理设备技术原理其原理是在高温下将可燃废气氧化成对应的氧化物和水,从而净化废气,并回收废气分解时所释放出来的热量,废气分...
喷漆房如何处理废气?
01喷漆房废气处理方法一:水喷淋+吸附法喷漆废气产生喷涂过程,液态油漆在气压作用下形成雾化粉尘颗粒物及挥发三苯等有机危害物,浓度较高,粒径较小,若未经预...
链板秤的组成部分有哪些?
[回答]链板计量秤上的物料的重力作用于荷重传感器上,荷重传感器将所受力的大小转换为电信号输出至PLC的模拟量输入模块,同时电机旋转的速度也通过速度传感...