西门子高速输出可以通过以下步骤进行编程:
单段PTO编程
定义脉冲串
定义一个脉冲串,输出一个脉冲串。特性参数通过特殊寄存器分别定义。
多段PTO编程
集中定义多个脉冲串:把各段脉冲串的特性参数按照规定的格式写入变量存储区用户指定的缓冲区中,称为包络表。
包络表说明:
包络表由包络段数和各段构成。
第一个字节为需要输出的脉冲串总段数,范围:1~255。
定义一段脉冲串的特性参数需要8个字节:
两个字节存放脉冲串的起始周期值。
两个字节定义脉冲串的周期增量。
四个字节存放该段脉冲串的脉冲数。
周期增量的计算公式:例如,第1段中的初始周期为500μs,脉冲数为400个;而第2段的初始周期为100μs,为保证平滑过渡,第1段的结束周期设为与第2段初始周期相同,则脉冲的周期增量为:N=100-500/400=-1μs。
多段PTO操作:
需把包络表的起始地址装入标志寄存器SMW168(或SMW178)中。
PTO指令执行时,当前输出段的段号由系统填入SMB166或SMB176中。
S7-200产生脉冲实例
使用向导编程
选择端口为Q0.0。
选择输出为PTO脉冲。
设置最高速度和起始速度。
设置加减速时间。
绘制运动轨迹。
分配寄存器地址。
完成配置。
编写程序。
示例程序(SBR_0块)
```assembly
LD SM0.0 // 设置脉冲输出PLS 0的控制字节:允许单段PTO功能
MOVB 168D, SMB67 // 时间基准为ms,可更新脉冲数和周期
R Q0.0, 1 // 复位脉冲输出Q0.0的映象寄存器
MOVW +2, SMW68 // 输出脉冲的周期为2ms
MOVD +12000, SMD72 // 产生12000个脉冲 (共24s)
PLS 0 // 起动PLS0, 从输出端Q0.0输出脉冲
S Q0.1, 1 // 在第一段时间(4s)内,Q0.1为1状态
```
建议
理解脉冲输出模式:根据应用需求选择单段PTO或多段PTO。
包络表设计:确保包络表格式正确,特别是周期增量计算,以保证脉冲输出的平滑过渡。
寄存器分配:合理分配寄存器地址,确保程序执行效率。
测试与调试:在编写程序后,进行充分的测试和调试,确保高速输出功能的正确性。