• {{item.name}}
SIMATIC S7-200 SMART {{item.name}}
{{item2.name}}
更多

PLS指令使用及例程

star star star star star
0 分
  • 软件编程
发布时间:2024年01月11日
  • 0
  • 251
PLS指令使用及例程

PLS 指令编程步

使用 PLS 指令编程, 以实现 PTO 输出, 可按照以下步骤编程:

第一步:设置 PTO 控制字节,以确定使用单段操作或多段操作,是否更新频率或脉冲数;

第二步:如果是单段操作,装载或更新频率值,脉冲数;如果是多段操作,装载包络表起始地址以及包络表每段起始频率值,结束频率值,脉冲数;

第三步:设置 PLS 指令通道, 以确定是 Q0.0、Q0.1 或 Q0.3 PTO 输出;

第四步:沿触发 PLS 指令。

使用 SM 位置组态和控制 PTO 操作

PLS 指令读取存储于指定 SM 存储单元的数据,并相应地编程 PTO 生成器。

SMB67 控制 PTO0 ,SMB77 控制 PTO1 ,SMB567 控制 PTO2 。PTO 控制寄存器的 SM 单元表介绍了用于控制 PTO 操作的寄存器。可快速参考该表来确定在 PTO/PWM 控制寄存器中放置什么值才能调用想要的操作。

可通过修改 SM 区域(包括控制字节)中的单元,然后执行 PLS 指令,来改变 PTO 的特性。

任何时候都可通过向 PTO 控制字节(SM67.7、SM77.7 或 SM567.7)使能位写入 0,然后执行 PLS 指令,来实现禁止 PTO输出 。输出点将立即恢复为过程映像寄存器控制。

PTO 控制字节

PTO 产生单段脉冲串或者多段脉冲串,需先组态 PTO 控制字节(SMB67、SMB77 和 SMB567)。

PTO/PWM 控制寄存器的 SM 单元如下表 1 所示:

Q0.0Q0.1Q0.3控制位
SM67.0SM77.0SM567.0PTO/PWM 更新频率/周期时间:0 = 不更新1 = 更新频率/周期时间
SM67.1SM77.1SM567.1PWM 更新脉冲宽度时间:0 = 不更新1 = 更新脉冲宽度
SM67.2SM77.2SM567.2PTO 更新脉冲计数值:0 = 不更新1 = 更新脉冲计数
SM67.3SM77.3SM567.3PWM 时基:0 = 1 µs/时标1 = 1 ms/刻度
SM67.4SM77.4SM567.4保留
SM67.5SM77.5SM567.5PTO 单/多段操作:0 = 单段1 = 多段
SM67.6SM77.6SM567.6PTO/PWM 模式选择:0 = PWM1 = PTO
SM67.7SM77.7SM567.7PWM 使能:0 = 禁用1 = 启用

表 1 .PTO/PWM 控制寄存器的 SM 单元

PTO 控制字节(SMB67、SMB77 和 SMB567), 如下表 2 所示:

控制寄存器(十六进制值)启用选择模式PTO 段操作时基脉冲计数频率
16#C0PTO单段频率 HZ
16#C1PTO单段频率 HZ更新频率
16#C4PTO单段频率 HZ更新
16#C5PTO单段频率 HZ更新更新频率
16#E0PTO多段频率 HZ

表 2. 十六进制值组态 PTO 控制字节

除组态 PTO 控制字节,应该在执行 PLS 指令前装载或更新脉冲频率,脉冲数。

如果使用多段脉冲串,在执行PLS 指令前还需要装入包络表的起始偏移量和包络表的值。 如下表 3 所示:

Q0.0Q0.1Q0.3其它控制寄存器
SMW68SMW78SMW568PTO 频率:1 到 65,535 Hz (PTO)
SMD72SMD82SMD572PTO 脉冲计数值:1 到 2,147,483,647
SMW168SMW178SMW578包络表的起始单元(相对 V0 的字节偏移)仅限多段 PTO 操作

表 3. 其它控制寄存器

PTO 状态字节

可通过监视 PTO 状态字节(SMB66、SMB76 和 SMB566) , 诊断 PTO 输出状态。 如下表 4 所示:

Q0.0Q0.1Q0.3状态位
SM66.4SM76.4SM566.4PTO 增量计算错误(因添加错误导致)0 = 无错误1 = 因错误而中止
SM66.5SM76.5SM566.5PTO 包络被禁用(因用户指令导致):0 = 非手动禁用的包络1 = 用户禁用的包络
SM66.6SM76.6SM566.6PTO/PWM 管道溢出/下溢:0 = 无溢出/下溢1 = 溢出/下溢
SM66.7SM76.7SM566.7PTO 空闲:0 = 进行中1 = PTO 空闲

表 4. PTO 状态位

PTO 脉冲的单段管道化

  1. 单段管道化频率的上限为 65,535 Hz。
  2. 在单段管道化中,用户可通过 SM 更新下一脉冲串的频率或脉冲数。更新后,再次执行 PLS 指令。
  3. PTO 功能在单段管道中保留第二个脉冲串的属性,直到其完成了第一个脉冲串。在第一个脉冲串完成时,开始输出第二个波形,然后可在管道中存储一个新脉冲串设置。之后重复此过程。
  4. PTO 在单段管道中一次只能存储一个条目。若在管道仍填满时装载新设置,PTO 溢出位置位且指令被忽略。

PTO 脉冲的单段管道化例程

S7-200 SMART CPU Q0.0 以 100 HZ 频率值输出 1000 个脉冲。

PTO 脉冲的单段管道化

注意:以上例程仅为示例程序,请勿直接用于测试!

测试前,用户务必使用晶体管输出的 S7-200 SMART CPU,并根据实际使用需求修改程序中的频率值和脉冲数!

此程序的作者和拥有者对于该程序的功能性和兼容性不负任何责任。使用该程序的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

PTO 单段脉冲串排队

PTO 脉冲的单段只能有一个脉冲串排队,PTO 对溢出的脉冲串不响应,PTO 溢出位置 1。 如果希望检测后续溢出,溢出位置位后只能手动复位或 CPU STP 到 RUN。

PTO 脉冲的多段管道化

  1. PTO 生成器自动将频率从起始频率线性提高或降低到结束频率,多段管道化频率的上限为 100,000 Hz。
  2. 对于多段脉冲串操作,必须装载包络表的起始偏移量(SMW168、SMW178 或 SMW578)和包络表值。
  3. S7-200 SMART 从 V 存储器的包络表中自动读取每个脉冲串段的特性,执行 PLS 指令将启动多段操作。
  4. 在脉冲数量达到指定的脉冲计数时,立即装载下一个 PTO 段,该操作将一直重复到包络结束。
  5. 每个脉冲包络最多可由 255 段组成,每段对应一个加速、运行或减速操作。
  6. 在 SMB166、SMB176 或 SMB576 中可监视 PTO 包络当前有效段的编号。
  7. 多段 PTO 每段条目长 12 字节,由 32 位起始频率、32 位结束频率和 32 位脉冲计数值组成。

多段 PTO 操作的包络表格式如下:

PTO 多段管道化例程

使用带有脉冲包络的 PTO 通过简单的加速、运行和减速顺序来控制步进电机。

通过定义脉冲包络可创建更复杂的顺序。

右图说明了生成输出波形所需的采样包络表值:

● 段 1:加速步进电机

● 段 2:以恒定转速运行电机

● 段 3:使电机减速

在本例中,要达到期望的电机转数,PTO 生成器需要以下值:

● 2 kHz 的启动和结束脉冲频率

● 10 kHz 的最大脉冲频率

● 4000 个脉冲

输出包络的加速部分,约在 200 脉冲后,输出波形达到最大脉冲频率

约在400 脉冲后,输出波形应完成包络的减速部分。

PTO 脉冲的多段管道化

注意:以上例程仅为示例程序,请勿直接用于测试!

测试前,用户务必使用晶体管输出的 S7-200 SMART CPU,并根据实际使用需求修改程序中的频率值和脉冲数!

此程序的作者和拥有者对于该程序的功能性和兼容性不负任何责任。使用该程序的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

计算给定  PTO  包络段的加速度(或减速度)和持续时间

Ts 段持续时间对于 PTO  包络表计算的重要用途

计算包络段的加速度(或减速度)和持续时间有助于确定正确的包络表值。

注意:如果 Ts 段持续时间少于 500 微秒,将导致 CPU 没有足够的时间来计算 PTO 段值。 PTO 管道下溢位(SM66.6、SM76.6 和 SM566.6)将置为 1,PTO 操作终止。

可按如下公式计算 Ts 段持续时间

ΔF = FFinal - FInitial

Ts = PC / (Fmin + ( | ΔF | / 2 ) )

As = ΔF / Ts

Ts段持续时间 (s)
As段频率加速度 (Hz/s)
PC段内脉冲数量
Fmin段最小频率 (Hz)
ΔF段增量(总变化)频率 (Hz)

PTO 中断

状态位(SM66.7、SM76.7 或 SM566.7)是 PTO 空闲位,可用来指示编程的脉冲串是否已结束。PTO 中断在脉冲串结束后执行。

单段操作:在每个 PTO 脉冲串结束时可以产生PTO脉冲完成中断。中断例程可在脉冲串结束后进行调用。例如,如果第二个 PTO 已装载到管道中,PTO 功能在第一个 PTO 结束时调用中断例程,然后在已装载到管道中第二个 PTO 结束时再次调用。

多段操作:在 PTO 包络表完成时产生PTO脉冲完成中断。

PTO 中断事件号说明
19PLS0 PTO 脉冲计数完成中断
20PLS1 PTO 脉冲计数完成中断
34PLS2 PTO 脉冲计数完成中断

以 PLS0 PTO 中断为例, 可在主程序中使用 CPU 第一个扫描周期有效位 SM0.1 调用 ATCH, 如下图 1 所示:

图 1. PLS0 PTO 脉冲计数完成中断

PTO 中断事件应用实例

S7-200 SMART CPU 发送无限脉冲。

以频率值 100 HZ 为例,一直发送脉冲为例, 程序说明如下:

PTO 控制字节 SMB67=16#C0

PTO 频率值 SMW68=100

PTO 脉冲数 SMD72=2147483647(最大值)

启用 PTO 脉冲计数完成中断

在脉冲计数完成中断 INT_0 ,再次执行 PLS 指令。

图 2. S7-200 SMART 发送无限脉冲程序

注意:以上例程仅为示例程序,请勿直接用于测试!

测试前,用户务必使用晶体管输出的 S7-200 SMART CPU,并根据实际使用需求修改程序中的频率值!

此程序的作者和拥有者对于该程序的功能性和兼容性不负任何责任。使用该程序的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

常问问题

如何判断 S7-200 SMART CPU 是否输出高速脉冲?

可采用如下两种方法:

1. 观察 S7-200 SMART 硬件输出点 Q0.0、Q0.1 、Q0.3 指示灯状态:指示灯亮或闪烁时, 表示正在输出高速脉冲;

2. 在状态图表中, 在线监视状态位SM66.7、SM76.7 或 SM566.4:该位为 FALSE 时, 表示PTO 进行中; 为 TURE时, 表示 PTO 空闲。

为何连续触发多次 PLS 指令, S7-200 SMART CPU 只输出前几次的高速脉冲串?

PTO 单段脉冲串排队

PTO 脉冲的单段只能有一个脉冲串排队,PTO 对溢出的脉冲串不响应,PTO 溢出位置 1。 如果希望检测后续溢出,溢出位置位后只能手动复位或 CPU STP 到 RUN。

测试 PTO 单段脉冲串排队, 程序说明如下:

将 S7-200 SMART 硬件 Q0.0 接入I0.0。

配置高速计数器向导,启用 HSC0_INIT

PTO 控制字节 SMB67=16#C0

PTO 频率值 SMW68=100

PTO 脉冲数 SMD72=1000 第一个脉冲串发送期间,按如下操作连续三次使能 V0.0,上升沿触发 PLS 指令并累计次数:

第一、二次使能 V0.0 ,上升沿触发 PLS 指令,PLS 指令累计次数 VW20< =1,Q0.0 以 100 HZ 频率值输出 1000 个脉冲;

第三、四次使能 V0.0 ,更新脉冲数并上升沿触发 PLS 指令 ,PLS 指令累计次数 VW20 >1

PTO 控制字节 SMB67=16#C4

PTO 脉冲数 SMD72=500

如下图 3 所示:

图 3. PTO 单段脉冲串排队

待 S7-200 SMART CPU 脉冲发送完成, 监视状态图标,HC0=2000,PLS 累计计数 VW20=4 次, PTO 0溢出位 SM66.6=1。如下图 4 所示:

说明 PTO 脉冲的单段只能有一个脉冲串排队,对第三、四个溢出的脉冲串不响应,PTO 溢出位置 1。

图 4. PTO 单段脉冲串排队状态图表


剩余80%未阅读,请登录查看大全章节内容

  • 评论
更多
  • 分享

    扫码分享

0元领课点我

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。