首页 理论教育 高速处理指令相关链接优化方案

高速处理指令相关链接优化方案

时间:2023-06-18 理论教育 版权反馈
【摘要】:高速处理指令共有3 种, 除了高速计数器指令外, 还有高速脉冲输出指令和立即类指令两种。高速脉冲输出指令从特殊存储器SM 中读取数据, 使程序按照其数值控制PTO/PWM发生器。表4-3-7高速脉冲输出指令的格式及功能PTO 可采用中断方式进行控制, 而PWM 只能由PLS 指令激活。图4-3-8“HSC 指令向导” 对话框(四) 高速计数器中断处理方式设定完成后, 出现“HSC 指令向导” 对话框(五), 即高速计数器编程确认页面。

高速处理指令相关链接优化方案

高速处理指令共有3 种, 除了高速计数器指令外, 还有高速脉冲输出指令和立即类指令两种。

1. 高速脉冲输出指令

高速脉冲输出(PLS) 指令用于产生高速脉冲, 实现脉冲串输出(PTO) 和脉冲宽度调制(PWM) 功能, 用来驱动负载, 实现高速输出和精确控制。

1) 高速脉冲输出指令的格式及功能

高速脉冲输出可用于步进电动机的控制。 高速脉冲输出指令的格式及功能见表4 -3 -7所示。 高速脉冲输出指令从特殊存储器SM 中读取数据, 使程序按照其数值控制PTO/PWM发生器。 SMB67 控制PTO0 或PWM0, SMB77 控制PTO1 或PWM1, 各位的含义请参见本书附录B。

表4-3-7 高速脉冲输出指令的格式及功能

PTO 可采用中断方式进行控制, 而PWM 只能由PLS 指令激活。

2) 输出线的连接

PTO 主要用来产生指定数量的方波(占空比50%), 用户可以控制方波的周期和脉冲数。 PTO 的周期以μs 和ms 为单位, 是一个16 位无符号数, 周期变化范围为50 ~65 535 μs或2 ~65 535 ms, 编程时周期一般设置成偶数。 脉冲串的个数用双字长无符号数表示, 脉冲数取值范围为1 ~4 294 967 295。

PWM 主要用来输出占空比可调的高速脉冲串, 用户可以控制脉冲的周期和脉冲宽度。PWM 的周期或脉冲宽度以μs 和ms 为单位, 是一个16 位无符号数, 周期变化范围与PTO 相同。

每个CPU 有两个PTO/PWM 发生器, 一个分配在数字输出端Q0.0, 另一个在Q0.1。PTO/PWM 发生器与输出映像寄存器共用Q0.0 和Q0.1, 当其设定为PTO/PWM 功能时,PTO/PWM 发生器控制输出, 在输出点禁止使用通用数字输入功能。

2. 立即类指令

立即类指令允许对输入和输出点进行直接读、 写操作。 在某些特殊条件下, 需要尽可能缩短程序响应时间, 尽可能采用新的输入点信息和输出点运行结果, 这时可使用立即类指令。 立即类指令包括立即触点指令和立即输出指令。

1) 立即触点指令

立即触点指令只能对输入映像寄存器进行操作。 使用立即触点指令读取输入点状态时,它会立即把输入数值读到栈顶, 但不刷新相应的输入映像寄存器。 这类指令包括LDI、 LDNI、 AI、 ANI、 OI、 ONI, 共6 条。

2) 立即输出指令

立即输出指令有立即复位指令、 立即置位指令和立即输出指令3 种。 执行立即输出指令时, 把栈顶的当前值立即复制到指令所指物理输出点, 并同时刷新输出映像寄存器。 这类指令包括=I、 SI、 RI, 共3 条。

3. 高速计数器指令向导的应用

高速计数器指令和高速脉冲输出指令的程序可以用编程软件的指令向导生成。 以高速计数器指令向导为例, 编程步骤如下。

(1) 打开STEP 7 -Micro/WIN 32 软件, 选择主菜单“工具/指令向导” 选项进入“指令向导” 对话框, 如图4 -3 -4 所示。

(www.xing528.com)

图4-3-4 “指令向导” 对话框

(2) 在对话框中选择“HSC” 选项, 单击“下一步” 按钮, 出现“HSC 指令向导” 对话框(一), 从中可以选择计数器的编号和计数模式。 在本例中选择“HSC1” 和“模式11”, 选择后单击“下一步” 按钮, 如图4 -3 -5 所示。

图4-3-5 “HSC 指令向导” 对话框(一)

(3) 接着出现图4 -3 -6 所示的“HSC 指令向导” 对话框(二), 即高速计数器初始化设定页面, 在其中可以分别输入高速计数器初始化子程序的符号名(默认的符号名为“HSC-INIT”); 高速计数器的预置值(本例输入为“10000”); 计数器当前值的初始值(本例输入为“0”); 初始计数方向(本例中选择“增”); 重设输入(即复位信号) 的极性(本例选择“高”, 即高电平有效); 起始输入(即启动信号) 的极性(本例选择“高”, 即高电平有效); 计数器的倍率选择(本例选择4 倍频, 即“4X”)。 完成后单击“下一步”按钮。

图4-3-6 “HSC 指令向导” 对话框(二)

(4) 在完成高速计数器的初始化设定后, 出现“HSC 指令向导” 对话框(三), 即高速计数器中断设置的页面。 本例中为当前值等于预置值时产生中断, 并输入中断程序的符号名(默认为“COUNT_EQ”)。 在“您希望为HC1 编程多少步?” 文本框中, 输入需要中断的步数,本例只需当前值清零一步, 故选择“1”。 完成后单击“下一步” 按钮, 如图4-3-7 所示。

图4-3-7 “HSC 指令向导” 对话框(三)

(5) 进入高速计数器中断处理方式设定页面。 在本处假设当CV =PV 时需要将当前值清零, 所以勾选“HSC 指令向导” 对话框(四) 中“更新当前值(CV)” 复选按钮, 并在“新CV” 文本框内输入新的当前值“0”。 完成后单击“下一步” 按钮, 如图4 -3 -8 所示。

图4-3-8 “HSC 指令向导” 对话框(四)

(6) 高速计数器中断处理方式设定完成后, 出现“HSC 指令向导” 对话框(五), 即高速计数器编程确认页面。 该页面显示了由向导编程完成的程序及其使用说明, 单击“完成” 按钮结束编程, 如图4 -3 -9 所示。

图4-3-9 “HSC 指令向导” 对话框(五)

(7) 向导使用完成后在程序编辑器页面内自动增加了名称为“HSC_INIT” 子程序和“COUNT_EQ” 中断程序。 分别单击“HSC_INIT” 子程序和“COUNT_EQ” 中断程序标签,就会看到程序具体内容。

思考与练习

1. 用高速计数器HSC1 实现20 kHz 的加计数。 当计数值达到200 时, 对当前值进行清零操作。

2. 设计程序, 从PLC 的Q0.0 输出高速脉冲。 该串脉冲脉宽的初始值为0.1 s, 周期固定为1 s, 其脉宽每周期递增0.1 s, 当脉宽达到设定的0.9 s 时, 脉宽改为每周期递减0.1 s, 直到脉宽减为0。 以上过程重复执行。

3. 某设备采用位置编码器作为检测元件, 需要高速计数器进行位置值的计数, 其要求如下: 计数信号为A、 B 两相相位差90°的脉冲输入; 使用外部计数器复位与启动信号, 高电平有效; 位置编码器每转的脉冲数为2 500, 在PLC 内部计数器选择4 倍频, 计数开始值为“0”, 当转动1 转后, 需要清除计数值进行重新计数。 设计程序实现以上控制要求。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈