配合实际案例为你介绍PLC的基本指令,这样学PLC进步才快。
本文为大家介绍的是查找数据指令,绝对值凸轮顺控指令,增量值凸轮指令。并且通过实际案例为大家介绍。
查找数据指令:
该指令的助记符,指令代码,操作数,程序步如下表
指令格式:
这条指令表达的意思是:D100,K10,表示源操作数一共有10个,以D100为首的D100~D109。然后查找一个目标,把这个查找的目标放在D0中,查找的结果放在D10中。
我们用一个表格来表达:
假设D100=K100,D101=K111,D102=K100…….10个数据,这10个数据为被查数据。现在要查的数据放在D100在,数值为100,然后从右边的表格我们可以看到符合的值有3个,并且我们还可以看到最小值与最大值。
要注意的是,数据查找指令找出来的是这些数据的位置,而不是这个数值本身。
应用举例:
例子:用SER指令编写一个程序,完成如下功能。有10个评委打分,所打的分数分别存在D1~D10中,求去掉一个最高分和最低分后的平均分。
分析:
1.求出D1~D10的和
2.用SER指令找出最大值与最小值
3.利用变址从总和中减去最大值与最小值
4.把减去后所得的结果除以8即得到平均值
梯形图:
绝对值凸轮顺控指令指令:
该指令的助记符,指令代码,操作数,程序步如下表
指令格式:
K4表示的控制了4个位元件,分别是以M0为首的,M1,M2,M3四个位元件。D300是表示存放凸轮的开通点和关断点。这里有4个位元件,所以在D300里面存放了8个数据寄存器,从D300~D307。C0是凸轮转动起来后计算凸轮转动的角度的。假设凸轮上接了一个编码器,凸轮每转动一度,X1上就产生一个脉冲,然后C0开始计数,记够了360度也就刚好旋转了一周。C0接通,对C0复位。这样就可以方便我们对M0~M3进行控制。
具体用法:
我们通过以上这个表格来说明,上升点表示的是接通,下落点表示断开我们设置D300等于40,就是在凸轮转了40度后接通,D301=140就是在凸轮旋转了140度后断开。凸轮顺控指令的好处就是,我们可以随意设置接通的点和断开的点,而传统的凸轮来只有固定的位置。
增量式凸轮顺控指令指令:
该指令的助记符,指令代码,操作数,程序步如下表
指令格式:
K4相当于控制了4对触点,通过M0,M1,M2,M3这4个位元件来表达,这4个凸轮的接通点和关断电点存放在D300中,当X0接通的时候C0开始计数,计数的结果再和D300~D307里面的数进行比较,然后再通过M0~M3输出。
指令规律: 我们先用传送指令把:D300=20,D301=30,D302=10,D303=40写入【S1】中,当X0接通的时候,C0开始计数,当等于20的时候复位一次,又继续计数当等于30的时候再复位一次,依次循环进行,但是如果我们在计数计了一半的时候,突然断开,那么程序又会从新开始。在这个程序当中除了用到C0之外我们还用到了C1,C1的作用是记够了一个值C1自动加一,计完一个周期后又从新开始。从这个图我们可以看见,当0~20的时候M0是接通的,当M0复位以后,M1接通,到了30的时候M1断开,我们可以看到M0,M1.M2,M3是轮流接通的。计完一个周期后M8029接通一个周期。
增量式凸轮顺控指令,与前面的绝对值凸轮顺控指令的区别是:数据寄存器只需要4个,并且是轮流接通的,接通时间由相应的数据寄存器的值来决定,数据寄存器的值越大接通的时间越长,越小接通的时间越短。
应用举例:用INCD编写喷泉控制:
当按下启动按钮后,A组喷头先喷5s后停止,然后B、C组喷头同时喷,5s后,B组喷头停止、C组喷头继续喷5s再停止,而后A、B组喷头喷7s,C组喷头在这7s的前2s内停止,后5s内喷水,接着A、B、C三组喷头同时停止3s,以后重复前述过程。按下停止按钮后,三组喷头同时停止喷水。下图为A、B、C三组喷头工作。
时序图:
梯形图:
本文就为大家介绍到这里,如果有不懂的可以关注私信小编呢!喜欢更多PLC知识的朋友也可以关注小编。
西门子PLC的计数器指令,高速计数器的用法
计数器
可使用计数器指令对内部程序事件和外部过程事件进行计数。
● 输入参数 CU 的值从 0 变为 1 时,“加计数”计数器 (CTU) 就会加 1。
● 输入参数 CD 的值从 0 变为 1 时,“减计数”计数器 (CTD) 就会减 1。
● “加计数和减计数”计数器 (CTUD) 在加计数 (CU) 或减计数 (CD) 输入从 0 转换为1时加 1 或减 1。
用户程序中可以使用的计数器数仅受 CPU 存储器容量限制。各个计数器使用 3 个字节(表示 SInt 或 USInt)、6 个字节(表示 Int 或 UInt)或 12 个字节(表示 DInt 或UDInt)。
如上时序图显示了具有无符号整数计数值的 CTU 计数器的运行(其中 PV = 3)。
● 如果参数 CV(当前计数值)的值大于或等于参数 PV(预设计数值)的值,则计数器输出参数 Q = 1。
● 如果复位参数 R 的值从 0 变为 1,则 CV 复位为 0。
如上时序图显示了具有无符号整数计数值的 CTD 计数器的运行(其中 PV = 3)。
● 如果参数 CV(当前计数值)的值等于或小于 0,则计数器输出参数 Q = 1。
● 如果参数 LOAD 的值从 0 变为 1,参数 PV(预设值)的值将作为新的 CV 装载到计数器。
如上时序图显示了具有无符号整数计数值的 CTUD 计数器的运行(其中 PV = 4)。
● 如果参数 CV(当前计数值)的值等于或大于参数 PV(预设值)的值,则计数器输出参数 QU = 1。
● 如果参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。
● 如果参数 LOAD 的值从 0 变为 1,则参数 PV 的值将作为新的 CV 装载到计数器。
● 如果复位参数 R 的值从 0 变为 1,则 CV 复位为 0。
脉冲宽度调制 (PWM)
CTRL_PWM 指令可提供占空比可变的固定循环时间输出。 PWM 输出以指定频率(循环时间)启动之后将连续运行。脉冲宽度会根据需要进行变化以影响所需的控制。
CTRL_PWM 指令将参数信息存储在 DB 中。 数据块的参数由 CTRL_PWM 指令控制。
CPU 第一次进入 RUN 模式时,脉冲宽度将设置为在设备配置中组态的初始值。根据需要将值写入设备配置中指定的字长度输出 (Q) 地址(“输出地址”/“起始地址”)以更改脉冲宽度。 使用指令(例如,Move、Convert、数学运算或 PID)将指定的脉冲宽度写入相应的字长度输出 (Q)。 必须使用输出值的有效范围(百分数、千分数、万分数或 S7 模拟格式)。
占空比可表示为循环时间的百分数或相对量(例如,0 到 1000,或者 0 到 10000)。 脉冲宽度可从 0(无脉冲,始终关闭)到满刻度(无脉冲,始终打开)变化。
PWM 输出可在 0 到满量程之间变化,因此可提供在许多方面都与模拟量输出相同的数字量输出。 例如,PWM输出可用于控制电机的速度,速度范围可以是从停止到全速;也可用于控制阀的位置,位置范围可以是从闭合到完全打开。
高速计数器 (HSC)
使用高速计数器 (HSC, High-Speed Counter) 对发生速率快于 OB 执行速率的事件进行计数。 利用CTRL_HSC指令控制 HSC 的运行。
在 CPU 的设备配置中对每个 HSC 的参数进行组态: 计数模式、I/O 连接、中断分配以及是作为高速计数器还设备来测量脉冲频率。
CTRL_HSC 指令通常放置在触发计数器硬件中断事件时执行的硬件中断 OB 中。 例如,如果 CV=RV 事件触发计数器中断,则硬件中断 OB 代码块执行 CTRL_HSC 指令,并且可通过装载 NEW_RV 值更改参考值。
在 CTRL_HSC 参数中没有提供当前计数值。 在高速计数器硬件的组态期间分配存储当前计数值的过程映像地址。 可以使用程序逻辑直接读取计数值。 返回程序的值将是读取计数器瞬间的正确计数。 计数器仍将继续对高速事件计数。 因此,程序使用旧的计数值完成处理前,实际计数值可能会更改。
可以通过用户程序来修改某些 HSC 参数,从而对计数过程提供程序控制:
● 将计数方向设置为 NEW_DIR 值
● 将当前计数值设置为 NEW_CV 值
● 将参考值设置为 NEW_RV 值
● 将周期值(限频率测量模式)设置为 NEW_PERIOD 值
如果执行 CTRL_HSC 指令后以下布尔标记值被设置为 1,则相应的 NEW_xxx 值将装载到计数器。 执行一次CTRL_HSC 指令可处理多个请求(同时设置多个标记)。
● 设置 DIR = 1 会装载 NEW_DIR 值。
● 设置 CV = 1 会装载 NEW_CV 值。
● 设置 RV = 1 会装载 NEW_RV 值。
● 设置 PERIOD = 1 会装载 NEW_PERIOD 值。
HSC 的运行
高速计数器 (HSC) 对发生速率快于 OB 执行速率的事件进行计数。 如果待计数事件的发生速率处于 OB 执行速率范围内,可使用 CTU、CTD 或 CTUD 计数器指令。 如果事件的发生速率快于 OB 的执行速率,则应使用 HSC。CTRL_HSC 指令允许用户程序通过程序更改一些 HSC 参数。
例如:可以将 HSC 用做增量轴编码器的输入。 该轴编码器每转提供指定数量的计数值以及一个复位脉冲。 来自轴编码器的时钟和复位脉冲将输入到 HSC 中。
用户程序将若干预设值中的第一个值装载到 HSC 上,并且在当前计数值小于当前预设值的时段内计数器输出一直由用户程序保持激活。当计数器值等于参考值(或 CV =RV)、发生复位及发生方向变化时,用户程序会对 HSC 进行组态,以提供中断功能。
每个 CV = RV 中断事件发生时,用户程序都会装载新的参考值,并设置 CV = RV 中断OB 内的下一输出状态。发生复位中断事件时,用户程序会装载第一个参考值,并设置复位中断 OB 中的第一个输出状态,然后重复该循环。
由于中断发生的频率远低于 HSC 的计数速率,因此能够在对 CPU 扫描周期影响相对较小的情况下实现对高速操作的精确控制。 通过提供中断,可以在独立的中断例程中执行每次的新预设值装载操作以实现简单的状态控制。 (或者,也可在单个中断例程中处理所有中断事件。)
选择 HSC 的功能
所有 HSC 在同一计数器运行模式下的工作方式都相同。 HSC 共有四种基本类型:
● 具有内部方向控制的单相计数器
● 具有外部方向控制的单相计数器
● 具有 2 个时钟输入的双向计数器
● A/B 相正交计数器
用户可选择是否激活复位输入来使用各种 HSC 类型。 如果激活复位输入(存在一些限制,请参见下表),则它会清除当前值并在您禁用复位输入之前保持清除状态。
● 频率功能: 有些 HSC 模式允许 HSC 被组态(计数类型)为报告频率而非当前脉冲
计数值。 有三种可用的频率测量周期: 0.01、0.1 或 1.0 秒。频率测量周期决定 HSC 计算并报告新频率值的频率。 报告频率是通过上一测量周期内总计数值求出的平均值。 如果该频率在快速变化,则报告值将是介于测量周期内出现的最高频率和最低频率之间的一个中间值。 无论频率测量周期的设置是什么,总是会以赫兹为单位来报告频率(每秒脉冲个数)。
● 计数器模式和输入: 下表列出了用于与 HSC 相关的时钟、方向控制和复位功能的输
入。同一输入不可用于两个不同的功能,但任何未被其 HSC 的当前模式使用的输入均可用
于其它用途。 例如,如果 HSC1 处于使用内置输入但未使用外部复位 (I0.3) 的模式下,则 I0.3 可以用于沿中断或 HSC2。
在设备配置期间分配高速计数器设备使用的数字量 I/O 点。 将数字量 I/O 点的地址分配给这些设备之后,无法通过监视表格中的强制功能修改所分配的 I/O 点的地址值。组态 CPU 时,可以选择启用和组态每个 HSC。 CPU 会根据其组态自动为每个 HSC 分配输入地址。 (某些 HSC 允许选择是使用 CPU 的板载输入还是使用 SB 的输入。)
如下表所示,不同 HSC 的可选信号的默认分配互相重叠。 例如,HSC 1 的可选外部复位使用的输入与 HSC 2 的其中一个输入相同。
要始终确保组态 HSC 时任何一个输入都不会被两个 HSC 使用。
例如,下表显示了 CPU 1212C 的板载 I/O 和 SB 两者的 HSC 输入分配。 (如果 SB 只有 2 个输入,则仅输入4.0 和 4.1 可用。)
● 对于单相: C 为时钟输入,[d] 为可选方向输入,[R] 为可选外部复位输入。 (复位仅适用于“计数”模式。)
● 对于双相: CU 为加时钟输入,CD 为减时钟输入,[R] 为可选外部复位输入。 (复位仅适用于“计数”模式。)
● 对于 AB 相正交: A 为时钟 A 输入,B 为时钟 B 输入,[R] 为可选外部复位输入。(复位仅适用于“计数”模式。)
HSC 1 和 HSC 2 可组态为使用板载输入或 SB 输入。HSC 5 和 HSC 6 只能使用 SB 输入。 HSC 6 只能使用 4 输入 SB。具有 2 个数字量输入的 SB 只能提供输入 4.0 和 4.1。访问 HSC 的当前值启用脉冲发生器作为 PTO 时,会向该 PTO 分配一个对应的 HSC。 HSC1 分配给PTO1,HSC2 分配给 PTO2。 分配的 HSC 完全属于 PTO 通道,并且禁用 HSC 的正常输出。 HSC 值仅用于内部功能。 生成脉冲时,不能监视当前值(例如,在 ID1000中)。CPU 允许用户组态最多 6 个高速计数器。 用户可编辑CPU 的“属性”(Properties) 来组态各个 HSC 的参数。在用户程序中使用 CTRL_HSC 指令控制 HSC 的运行。通过选择该 HSC 的“启用”(Enable) 选项启用特定的HSC。
启用 HSC 之后组态其它参数,例如计数器功能、初始值、复位选项和中断事件。
那么在什么情况下使用CTU、CTD 或 CTUD 计数器指令,又在什么情况下使用 HSC指令呢?
CU、CD 和 CTUD 指令使用软件计数器,软件计数器的最大计数速率会受到其所在 OB 的执行速率的限制。如果待计数事件的发生速率处于 OB 执行速率范围内,使用 CTU、CTD 或 CTUD 计数器指令。 如果事件的发生速率快于 OB 的执行速率,则应使用 HSC。
我们了解了高速计数器指令那实际编程又是什么样子的呢?我们通过下面的实例看一下吧。
1. 计数器类型分为三种:Axis of motion(运动轴),Frequency(频率测量),Counting(计数)。
2. 计数器模式分为4种:Single phase(单相),Two phase(双相),AB Quadrature 1X(A/B相正交四倍数)。
3. 输入源
4. 技术方向选择,User program (internal direction control)(内部方向控制)
5. 初始计数方向。
1. 是系统指定的高速计数器硬件识别号,这里填写1.
2. “1”为使能更新初值。
3. “0”新初始值为0。
将此程序下载到CPU以后即可执行。当前值可以在ID1000中读出。高速计数器的指令块,若不需要修改硬件组态中的参数,可不需要调用,系统仍然可以计数。
如果感觉文章还不错欢迎点赞关注评论转发。
相关问答
欧姆龙CP1HPLC脉冲发出完成标志是什么呢?-jwNppX4Y6Xm的...
2、这个标志位是输出中时OFF输出完成ON一般用它的上升沿触发信号。扩展资料一、保养规程、设备定期测试、调整规定(1)每半年或季度检查PLC柜中...
用三菱PLC控制步进电机的编程是怎样写的?
M206:正转M207:反转Y0:脉冲输出Y1:反转信号D4200:频率(用于控制速度,数据来源于触摸屏)K99999999:脉冲数量K100:加速时间向左转|向右转如图,这个就是一...M20.....
欧姆龙CP1HPLC脉冲发出完成标志是什么呢?-130****7560的...
完成标志为A392.06。PLC的一个扫描周期必经输入采样、程序执行和输出刷新三个阶段。PLC在输入采样阶段:首先以扫描方式按顺序将所有暂存在输入锁存...
工厂品质问题,如何解决?
工厂品质问题,如何解决?我带领朗欧咨询团队常年为制造型企业提供全天候驻厂辅导,针对品质管理,我总结了品质管理的21字要诀,在此与你分享,希望对你有帮助!...工...
谁有有趣的民科公式?
凑个热闹。这里有一则“民营科”的备选公式,请鉴赏:f(y)=P×Price×PLC×n.+Q×Price×1/PLC×m.其中,(一)关于“产品生命周期”系数:plc是:产...人...
什么是ETS?
ETS是教育测试服务机构(EducationalTestingService)的简称。它是一个非营利性机构,主要是为世界各地的学生和教育机构提供一系列测试和评估服务,包括TOEFL...
麻烦在线的大佬,有人知道不,显控触摸屏与台达PLCEH的搭配?
[回答]1、触摸屏设置原因:先看指令用的是PLSY还是DPLSY,还有频率操作数必须是整数的,再确定你的触摸屏数据设置是否是整数,是16位还是32位,与PLC指令对应,...
用三菱PLC控制步进电机正转一圈再反转一圈程序怎么做?
如图所示,Y0脉冲,Y1方向,当X0按下后,M0为ON,正转,脉冲频率100,脉冲个数1000(5圈的脉冲个数和电机步距角,细分数等相关,这里就是随便设置一个值而已。)...如图...
初中毕业生学什么专业好?
初中毕业,要么升入高中,以后考大学,拿个好的文凭;要么进中专或职校学一技之长,找个满意的工作。那么,初中毕业学习什么专业好呢?这是很多初中毕业生和家...汽车...
在网球比赛中,AD是什么意思?-plchct的回答-懂得
AD是发球占先的缩写。比赛,首先应该明白网球的“局(game)与盘(set)”。在一“局”里,由一方发球,对于发球方来说这一局就是“发球局”。在计分上保...