直播课堂
HOME
直播课堂
正文内容
plc编程中A指令的作用 西门子脉冲输出的几种方式有什么区别?如何应用?理解全面的人不多
发布时间 : 2026-01-24
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子脉冲输出的几种方式有什么区别?如何应用?理解全面的人不多

序: PTO和PMW的在应用上的区别为:

PTO为脉冲控制模式,而PWM为模拟量控制模式。

当设备对位置有精确要求时选用PTO,而当设备对转速和力矩有精确要求时选用PWM。

根据设备的需要选择伺服设备的类型,再选择用哪种控制方式。

PWM是通过高速计数器将输入信号模拟为恒定的电压输出,通过控制电压的变化来控制电机转速的变化。

一 西门子PLC高速脉冲输出的几个概念

1 高速脉冲输出的形式

A 高速脉冲串输出 PTO : ( Pulse Train Output )

输出指定数量,占空比为50% 的方波脉冲串。

B 宽度可调脉冲输出 PWM : ( Pulse Width Modulation )

输出数量不限,占空比可调的脉冲串信号。

2 高速脉冲输出端子

西门子S7-200CPU可以提供 2 个高速脉冲发生器

● PTO/PWM 发生器0 的输出端子是 Q0.0

● PTO/PWM 发生器1 的输出端子是 Q0.1

3 高速脉冲输出优先权

有PTO/PWM 输出时,CPU 把输出端子Q0.0、Q0.1 控制权交给 PTO/PWM 发生器,禁止普通逻辑输出。

输出映像寄存器 Q 的状态会影响PTO/PWM波形的起始电平, 高速脉冲输出前要先把Q0.0、 Q0.1的状态清零。

4 高速脉冲输出适用机型

输出高频脉冲信号时,应选用晶体管输出型 PLC。

二 高速脉冲输出指令及特殊寄存器

1 高速脉冲输出指令( Pulse )

指令功能:EN 有一个上升沿时,激活PLS,控制PLC从 Q0.0 或 Q0.1 输出高速脉冲。

PLS指令可以输出:

※ 高速脉冲串 PTO

※ 宽度可调的脉冲信号 PWM

数据类型:

※ 操作数Q0.X:X必须是常数 0 或 1。

※ EN:只接通一个扫描周期的短信号。

2 特殊寄存器

每个 PTO/PWM 都有一组配套参数:

● 1个 8位的控制字节

● 1个 8位的状态字节

● 1个 16位的周期值

● 1个 16位的脉宽值

● 1个 32位的脉冲数量

对于多段 PTO,还有

● 1个 8位的段字节

● 1个 16位包络表起始地址

这些参数存放在系统指定的特殊标志寄存器中

状态字节

PTO 方式下运行时,系统根据运行状态使相应位置位。

控制字节

通过设置字节中各控制位,来定义高速脉冲输出的特性.

控制字节中各控制位的功能

三 高速脉冲串输出PTO

特点:高速脉冲串输出(PTO)方式下,只能改变脉冲的周期值和脉冲数。

1 周期和脉冲数

●周期:单位:μs或ms。周期值为16位无符号整数。变化范围:50~65535 μs或 2~65535 ms。

脉冲数:是一个32位的无符号整数,取值范围:1~4294967295。

2 高速脉冲串输出中断

PTO 方式下,当输出完指定数量的脉冲后,产生高速脉冲串输出中断。

● PTO/PWM 0 的中断事件号是19

● PTO/PWM 1 的中断事件号是20

高速脉冲串输出时,CPU自动将PTO空闲位SM66.7(或SM76.7)置1。

3 PTO的种类

PTO方式下,要输出多段脉冲串时,允许脉冲串排队。PTO输出多段脉冲的方式有两种:

●单段PTO:定义一个脉冲串,输出一个脉冲串 (特性参数通过特殊寄存器分别定义) 。

●多段PTO:集中定义多个脉冲串,按顺序输出多个脉冲串(特性参数通过包络表集中定义)

单段PTO 实现的方法

用指定的特殊标志寄存器定义脉冲串特性参数(每次定义一个脉冲串)。一个脉冲串输出完成后,产生中断。在中断服务程序中再为下一个脉冲串更新参数,输出下一个脉冲串。

优点: 各脉冲段可以采用不同的时间基准。◎缺点:单段PTO输出多段高速脉冲串时,编程复杂,且参数设置不当会造成脉冲串之间的不平滑转换。

多段PTO 操作

多段PTO:集中定义多个脉冲串,并把各段脉冲串的特性参数按照规定的格式写入变量存储区用户指定的缓冲区中--称为包络表

包络表说明:

● 包络表由包络段数和各段构成。

● 第一个字节为需要输出的脉冲串总段数,范围:1~255 ;

● 定义一段脉冲串的特性参数需要8个字节

※ 2个字节存放脉冲串的起始周期值

※ 2个字节定义脉冲串的周期增量

※ 4个字节存放该段脉冲串的脉冲数

包络表中的周期单位可以为 ms 或 μs,

但表中所有周期单位必须一致。

● 周期增量的计算公式:

多段PTO操作时,需把包络表的起始地址装入标志寄存器 SMW168(或SMW178)中。

● PTO指令执行时,当前输出段的段号由系统填入 SMB166 或 SMB176 中。

多段PTO的优点:

编程简单,且在同一段脉冲串中其周期可以均匀改变。

多段 PTO 编程方法及步骤:

A. 初始化操作(以PTO/PWM 0为例):

a. 将 PTO 的输出点 Q0.0 复位;

b. 调用初始化子程序SBR-0,完成下列任务:

设置控制字节SMB67 ,按照控制要求按位填写:如使SMB67=16#A0。

将包络表的起始地址写入 SMW168;

● 填写包络表中各段脉冲串的特性参数;

建立中断连接:用ATCH指令建立脉冲输出完成中断事件与中断程序的联系。当PLS指令输出完指定数量的脉冲串时,产生中断。

● 用ENI全局开放中断;

B. 有启动信号时,执行高速脉冲输出指令PLS,按顺序输出多段脉冲串。

C. 有停止信号时,停止高速脉冲串输出。

停止 PTO 输出的方法

PLS指令一经激发,就能完成指定脉冲串的输出,故要停止PTO输出,必须先在控制字节中禁止PTO输出,且执行PLS指令。

多段PTO应用实例

已知步进电机的起动频率为2 kHz(A点),经过400个脉冲加速后频率上升到10 kHz(B点和C点),恒速转动的脉冲数为4000个,减速过程脉冲数为200个,频率降为2 kHz(D点),其频率特性如图所示。

解:● 确定脉冲发生器及工作模式

要求PLC输出三段串脉冲。故采用多段PTO输出方式。选择输出端为 Q0.0。

● 填写控制字节SMB67:使SMB67=16#A0

将包络表首地址装入SMW168中。

● 填写包络表。

参数换算:

起始频率:2 kHz ,起始周期值:500μs,

运行频率为10 kHz,运行周期值:100μs。

输出3段脉冲串,时基取μs,定义三段脉冲串特性参数的包络表为:

中断连接:高速脉冲输出完成时,产生中断事件19,用ATCH指令将与中断事件与中断服务程序INT0连接起来,并全局开中断(ENI)。

● 执行PLS指令。

采用多段PTO,脉冲串连续输出期间,按启动按钮I0.0不起作用,不会出现脉冲串重复排队输出的现象,脉冲串能够按照规定的顺序输出完后,停止输出。

四 宽度可调的脉冲输出PWM

特点: PWM方式下,用户可以改变脉冲的周期值 和 脉宽值 ,脉冲数不受限制。

1 周期值和脉宽值

周期值:是一个16位无符号数据,单位:μs或ms;变化范围:50~65535μs或2~65535 ms。

脉冲宽度:是一个16位无符号整数,单位:μs或ms;变化范围是0~65535 μs或ms。即占空比在0%~100%之间变化。

2 PWM 更新方式

● 同步更新:在改变脉冲周期值和脉宽值时,不改变时间基准。特点:同步更新时,波形的变化发生在周期的边缘,输出波形进行平滑转换。

异步更新:在改变脉冲周期值和脉宽值时,改变时间基准。特点:采用异步更新会使高速脉冲输出功能被瞬时禁止,这时输出端交由输出映像寄存器Q控制,可能使 PWM 的波形不连续,引起被控制设备的振动。

结论:改变 PWM 波形的特性时应尽量采用同步更新。

3 PWM的编程方法及步骤

A.确定脉冲发生器:

※ 选择高速脉冲输出端(发生器);

※ 选择工作模式为PWM。

B. PWM的初始化

a. 将PWM的输出点(Q0.0或Q0.1)复位;

b. 调用初始化子程序SBR-0,它所完成的任务:

按位填写控制字节(如SMB67):SMB67=16#DB

向SMW68写入第一个脉冲串的周期值;

●向SMW70写入第一个脉冲串的脉宽值 ;

●执行PLS指令,输出指定宽度的脉冲信号。修改脉冲串宽度的方法

● 改写控制字节SMB67,将允许改脉宽值位置1 ,其它位不变。

● 向SMW70写入新的脉冲宽度值

● 执行PLS,输出指定宽度的脉冲信号。

PWM 输出举例

要求 PWM0的脉冲周期是 T=10000ms,开始时输出占空比为 10%的脉冲,当 I0.0=1时,输出占空比为 50%的脉冲 ,当 I0.2=1时,停止输出脉冲。

PLC的加、减、乘、除指令有什么用?其实功能十分强大!

大家好,欢迎关注电气技术微课堂!这里会每天更新关于电气自动化、PLC、工业机器人、电子技术的原创文章和微课,如果你感兴趣请关注我

今天我们要谈一谈西门子S7-1200PLC中常用的四则运算指令

什么是四则运算指令呢?

四则运算指令包括加法指令ADD、减法指令SUB、乘法指令MUL、除法指令DIV四种。

一、加法指令ADD

执行加法指令ADD将输入IN1的值与输入IN2的值相加,并将加得结果存储在OUT设定的寄存器中。

加法指令功能框各端口的定义如下

EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT指定数据类型的允许范围或浮点数为无效值时ENO为0。

IN1/IN2: 要相加的数值,可以是寄存器的地址或常数,单击ADD指令下的星标可以扩展输入的数目。

OUT: 加法计算结果输出,IN1+IN2=OUT,OUT端一般填写寄存器地址。

加法指令小提示: 可以从指令框的“<???>”下拉列表中选择该指令的数据类型,当地址长度与数据类型不匹配时,会将输入数值隐式转换为指定的数据类型,编译不会报错,但运行过程中可能会出错。

二、减法指令SUB

执行减法指令SUB,将由被减数IN1的值减去减数IN2的值,并将结果存入OUT设定的寄存器地址中。

减法指令功能框各端口的定义如下

EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT 指定数据类型的允许范围或浮点数为无效值时ENO为0。

IN1: 被减数,可以是寄存器地址或常数。

IN2: 减数,可以是寄存器地址或常数。

OUT: 减法计算结果输出,IN1-IN2=OUT,OUT端一般填写寄存器地址。

三、乘法指令MUL

乘法指令MUL将输入 IN1 的值与输入 IN2 的值相乘,并将乘积保存在输出 OUT指定的寄存器中。

乘法指令功能框各端口的定义如下

EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出端,指令正确执行期间ENO输出为1,

IN1: 乘数,可以是寄存器地址或常数。

IN2: 乘数,可以是寄存器地址或常数。

Inn: 可以添加多个相乘的数。

OUT: 输出乘积存入指定的寄存器中。

四、除法指令DIV

除法指令DIV将输入 IN1 的值除以输入 IN2 的值,并将除得的商保存在输出 OUT指定的寄存器中。DIV指令支持各种整型和实数型数据。

除法指令功能框各端口的定义如下

EN: 使能输入,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出 ,指令正确执行期间ENO状态为1。

IN1: 被除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。

IN2: 除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。

OUT: 商值,输出OUT为执行除法指令得到的商,数据类型为无符号整数,余数被省略不计。

除法指令小提示

在使用除法指令DIV时,OUT输出端为除得的商值,数据类型为无符号整型,余数被省略不显示,如果需要求余数需使用MOD指令。

四则运算指令的实际应用举例

例题:温度传感器将采集到的温度值转换为电压信号输入给PLC,测量范围是0~100Co,数值经过被CPU集成的模拟量通道0(地址为IW64)转换为0~27648的数字,假设转换后的数字为T,试求以为Co单位的温度值。

解:0~100Co的温度值经A/D转换后的数字为0~27648,设转换后得到的数字为T,转换公式为

在编辑指令时,为了保证运算精度,应先乘后除。

因为公式中IW64乘以100的运算结果可能会大于16位整数的最大值32767(IW64为16位存储器,模拟值为二进制的补码,最高位为符号位,0为负,1为正),因此应将IW64中的数值数据类型转换为实数再进行乘除运算。

相关问答

PLC为什么要用MOV指令进行数据传送?

上面的朋友们说的都很好,我来总结一下吧。三菱编程中,MOV是传送指令,MOVAB,就是把A中的值赋给B。其中,A,B可以是常数(K开头)、存放在数据寄存器中的...上...

PLCA/D偏移量,增益量有什么作用?-江南天雪886的回答-懂得

AD偏移量一般做为校零点对正增益用于对应满幅度值2个量组合用于将采样数字量换算成对应的数值Y=a*X+b偏移量是调整零位,增益量是调整放大倍...

PLCA/D偏移量,增益量有什么作用?-188****8368的回答-懂得

偏移:例如,S7-200PLC系列,模拟量DC0~20mA对应的数字量0~32000,。如果是4~20mA,则要偏移20%,对应的数字量是6400~32000。A/D增益量好像没有呀,PID.....

A-Bplc上的的FORCE灯是什么意思?

根据您提供的信息,A-Bplc上的FORCE灯是指一个指示灯或指示器。FORCE灯通常用于显示设备或系统中的强制操作状态。当FORCE灯亮起时,表示该设备或系统正在强制执...

【PLC的输入继电器()a.只能由外部信号驱动。b.可以由内部指...

[最佳回答]PLC的输入继电器(a.只能由外部信号驱动)。

三菱plc原点回归指令怎么确定方向?

三菱PLC的DSZR指令可以用M8342指定Y0端口原点回归方向。原点是设置标志位,在装个传感器感应到位信号,到了原点D8340清零。设置正负极限位,近点和原点,每个传...

三菱PLC指令[D=K0K3X80]咋理解?

D=,三菱PLC触点比较输出指令中的等于指令。K0,十进制常数0。K3X80,表示3个位元件组,每个位元件组包括4个连续位元件,X80应该在A系列或者Q系列PLC中才...D=,...

rd3a指令是什么?

指对外部的模拟量输出模块,所用的指令,例如是fx2n-2da模拟量输出时使用。FROM指令是指对外部的模拟量,输入模块例如是fx2n-4ad模拟量输入时使用。而rd3a读取...

信捷PLC的输出端子中A和B是什么意思?

RS485通讯口,如果用不到通讯功能就把它空着XC系列可编程控制器用户手册[基本指令篇],P196RS485通讯口引脚A为“+”信号、B为“-”信号。XC系列可编程控制...

三菱plc指令inc的使用?

三菱PLC中INC指令是什么含义?INC是加一指令,就是自加一的一次每次触发进行加1操作。对应的DEC是减一指令。加1指令INC是将操作数[D]的内容进行加1,运算结果...

 windows rt  尹清枫 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2026  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部