PLS指令移植

S7-200 与 S7-200 SMART 使用PLS指令控制脉冲串输出(PTO)的SM 定义不同,不能将 S7-200 CPU 编写的 PLS指令程序直接用于S7-200 SMART。

PLS指令的单段管道化

如表1所示,使用 STEP 7-Micro/Win SMART 打开S7-200 CPU 的 PLS 指令程序需修改控制字节(SM67.6)和更改周期为频率(SMW68)。

表1. S7-200 与 S7-200 SMART 的SM 对比

Q0.0 S7-200 S7-200 SMART
SM67.0 PTO更新周期 PTO更新频率
SM67.1 未使用 未使用
SM67.2 PTO更新脉冲计数值 PTO更新脉冲计数值
SM67.3 PTO时间基准:0=1μs,1=1ms 未使用
SM67.4 未使用 未使用
SM67.5 PTO操作:0=单段,1=多段 PTO操作:0=单段,1=多段
SM67.6 PTO/PWM模式选择:0=PTO,1=PWM PTO/PWM模式选择:0=PWM,1=PTO
SM67.7 PTO启用:0=禁止,1=启用 PTO启用:0=禁止,1=启用
SMW68 PTO周期 PTO频率

使用 STEP 7-Micro/Win SMART 打开S7-200 CPU 的 PLS 指令程序需修改控制字节(SM67.6)和更改周期为频率(SMW68)。

例如:在 S7-200 程序里,编写 500ms/周期(SMB67=16#8D,SMW68=500ms),装载周期和脉冲的PTO 输出程序,移植至S7-200 SMART需要修改SMB67=16#C5,SMW68=2Hz。

pls_2

图1. PLS指令单段PTO移植

在单段管道化期间,频率的上限为65,535Hz,如果需要更高的频率(最高为100,000Hz),则必须使用多段管道化。

PLS指令的多段管道化

相对于 S7-200 多段 PTO 计算周期增量的方式,S7-200 SMART 多段 PTO 设置更简单,只需要定义起始、结束频率和脉冲计数即可,如图2所示。因此移植时需要重新编写PTO多段管道化程序。

pls_3图2. 多段PTO操作的包络表格式对比

对于依照周期时间(而非频率)的S7-200项目移植至S7-200smart时,可以使用以下公式来进行频率转换:

CTFinal = CTInitial + (ΔCT * PC)

FInitial = 1 / CTInitial

FFinal = 1 / CTFinal

CTInitial 段启动周期时间 (s) 
ΔCT 段增量周期时间 (s) 
PC 段内脉冲数量 
CTFinal 段结束周期时间 (s) 
FFInitial 段起始频率 (Hz) 
FFinal 段结束频率 (Hz) 

如图3所示,PLS指令多段PTO移植时无论 S7-200 中定义的SMB67为16#A0(1μs/周期)还是16#A8(1ms/周期),S7-200 SMART中都需要改为16#E0。起始、结束频率根据公式计算,脉冲数不需要改变。

pls_3

图3. PLS指令多段PTO移植

计算包络段的加速度(或减速度)和持续时间有助于确定正确的包络表值,可按如下公式计算 Ts 段持续时间:

ΔF = FFinal - FInitial

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

As = ΔF / Ts

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

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

S7-200 SMART PTO 脉冲数测量

S7-200 SMART CPU 没有类似 S7-200 CPU 的高速计数器模式 12 功能。

S7-200 SMART CPU 硬件脉冲输出接到输入,配置高速计数器向导并调用 HSC 子程序可监视 PTO 脉冲数量 。如下图4所示:

pls_1

图4. S7-200 SMART PTO 脉冲数测量