求脉冲输出事例

求一个pto 和pwm 脉冲输出 程序,学习用 所以麻烦大侠们加上注释,小弟在此先谢谢各位了!
 

最佳答案

Tip022B
  题目:用集成脉冲输出触发步进电机驱动器
 ***概述***
  CPU214有两个脉冲输出,可以用来产生控制步进电机驱动器的脉冲。功率驱
 动器将控制脉冲按照某种模式转换成步进电机线圈的电流,产生旋转磁场,使得
 转子只能按固定的步数(步数a)来改变它的位置。连续的脉冲序列产生与其对应
 的同频率(同步机)步序列。如果控制频率足够高,步进电机的转动可看作一个
 连续的转动。
 本例叙述用Q0.0的输出脉冲触发步进电机驱动器。当输入端m1.0发出"START"信号后,
 控制器将输出固定数目的方波脉冲,使步进电机按对应的步数转动。当输入端m1.1
 发出“STOP”信号后,步进电机停止转动。接在输入端m1.5的方向开关位置决定电机
 正转或反转。
 硬件要求
 数量               设备               制造厂/订货号
  1          SIMATIC S7-200 CPU-214     SIEMENS/6ES7 214-1AC00-0XB0
  1          PC/PPI电缆                 SIEMENS/6ES7 901-3BF00-0XA0
  1          编程设备或PC 
  1          带有标准的功率驱动器和相关连接电缆的步进电机
  1          用于传输控制信号到功率驱动器的电缆
  1          开关
  2          按钮

 ***程序和注释***
  1. 初始化  
   在程序的第一个扫描周期(SM0.1=1),为两种脉冲输出功能(PTO和PTW)选择参
 数,本例从中选择了PTO, 并规定了脉冲周期和脉冲数。
  2. 选择旋转方向
   用接在输入端m1.5的开关来选择转动方向。如果m1.5=1,将输出Q0.2置成高电位
 那么电机逆时针转动。如果m1.5=0,将输出Q0.2置成低电位,那么电机顺时针转动。
 为保护电机避免漏步,电机转动方向的改变只能在电机处于停止状态(M0.1=0)时
 进行。
  3. 起动电机
  起动电机的三个条件如下:
         (1) 按"START"(起动)按钮,在输入端m1.0产生脉冲上升沿(从0升到1);
         (2) 无联锁,即联锁标志M0.2=0;
         (3) 电机处于停止状态,即操作标志M0.1=0。
  如果同时具备上述3个条件,则将M0.1置位(M0.1=1),控制器执行PLS0指令,在输出端
 Q0.0输出脉冲,其他必须预先具备的条件,已经在首次扫描(SM0.1=1)设置,主要是脉
 冲输出功能的基本数据。例如,时基、周期和脉冲数。这些数据置于相应的属于PTO/PWM的
 特殊存储字SMW68,SMW70和SMD72。
 4. 停止电机
  停止电机的两个条件如下:
      (1)  按"STOP"按钮,在输入端m1.1产生脉冲上升沿(从0升到1);
      (2)  电机处于运转状态,即操作标志M0.1=1。
 如果同时具备上述2个条件,则将标志M0.1复位(M0.1=0),并中断输出端Q0.0的脉冲输出。
 这与执行PLS0命令有关,它将脉宽调制(PWM)输出的脉冲宽度减为0(所需的基本设置已在第
 一扫描周期中定义了),因而输出信号被抑制。
  在完整的脉冲序列输出后,中断程序0将标志M0.1复位(M0.1=0),从而使电机能够重新起动。
  5.联锁
  为保护人员和设备的安全,再按"STOP"(停止)按钮(m1.1)之后,必须规定驱动器连锁(或称
 阻塞),将联锁标志M0.2置位(M0.2=1),立即关断驱动器。只有在M0.2复位,(M0.2=0)后,才能
 重新起动电机。当"STOP"按钮松开后,为防止电机的意外起动,只有在“START”(m1.0)和
 "STOP"按钮(m1.1)都松开后,才能将M0.2复位(M0.2=0),如果要再次起动电机,则必须再发出
 一个起动信号。
  6.程序清单
 本程序长度为64个字
 标题:驱动器功能测试

 主程序:
 Network 1 
 LD     SM0.1
 CALL   SBR63
 Network 2 
 LD     SM0.0
 CALL   SBR0

 Network 3 
 LD     SM0.0
 CALL   SBR62

 OB(SBR0)
 Network 1 //  设置转动方向
 LDN    M0.1                        // 若电机处于停止状态,

 A      M1.5                        // 且转向开关置于1
 S      Q0.2, 1                     // 则逆时针转动(Q0.2=1)

 Network 2 
 LDN    M0.1                        // 若电机处于停止状态,

 AN     M1.5                        // 且转向开关置于0
 R      Q0.2, 1                     // 则顺时针转动(Q0.2=0)

 Network 3 // 联锁
 LD     M1.1                        // 若按"STOP"(停止)按钮
 S      M0.2, 1                     // 则联锁有效(M0.2=1)

 Network 4 //  解除联锁
 LDN    M1.0                        // 若"START"(起动) 按钮松开
 AN     M1.1                        // 且"STOP"(停止)按钮松开,
 R      M0.2, 1                     // 则解除联锁

 Network 5 // display 
 // xianshi
 // 
 LD     SM0.0
 MOVD   HC0, VD50

 MOTOR(SBR62)
 Network 1 
 LD     M1.0
 EU
 LPS
 AD=    VD50, 0
 MOVD   +40000, SMD72               // 输出40000个脉冲
 LPP
 AD<>   VD50, 0
 MOVD   +40000, AC1
 ANDD   16#FFFFFFFF, AC1
 MOVD   VD50, AC2
 -D     AC2, AC1
 MOVD   AC1, SMD72
 Network 2 // 网络标题
 // 网络注解
 LD     M1.0                        // 若按"START"(起动)按钮
 EU                                 // 上升沿
 AN     M0.2                        // 且无联锁
 AN     M0.1                        // 且电机停止 则
 MOVB   16#85, SMB67                // 置脉冲输出功能的控制位
 PLS    0                           // 起动脉冲输出(Q0.0)
 S      M0.1, 1                     // 电机运行标志M0.1置位(M0.1=1)
 Network 3 
 LD     M1.1                        // 若按"STOP"(停止)按钮,
 EU                                 // 上升沿
 A      M0.1                        // 且电机正在转动,则
 R      M0.1, 1                     // 电机运行标志M0.1复位(M0.1=0)
 MOVB   16#CB, SMB67                // 置脉冲输出功能的控制位,PWM的脉宽为0
 PLS    0                           // 输出端Q0.0无脉冲

 INI(SBR63)
 Network 1 // 网络标题
 // 网络注解
 LD     SM0.0
 HDEF   0, 12
 MOVB   16#F8, SMB37
 MOVD   0, SMD38
 MOVD   40000, SMD42
 ATCH   INT2, 12
 ENI
 HSC    0
 Network 2 
 LD     SM0.0                       // 仅首次扫描周期SM0.1置位(SM0.1=1)
 MOVW   +500, SMW68                 // 输出脉冲周期为500微秒
 MOVW   +0, SMW70                   // 脉宽为0(脉宽调制)
 ATCH   INT0, 19                    // 把中断程序0分配给中断事件19(PLS0
                                    // 脉冲输出结束)
 ENI                                // 允许中断

 INT_0(INT0)
 LD     SM0.0
 R      M0.1, 1                     // 电机运行标志M0.1复位(M0.1=0)
 INT_2(INT2)
 Network 1 // 网络标题
 // 网络注解
 LD     SM0.0
 MOVD   0, SMD38
 MOVB   16#C0, SMB37
 HSC    0
 

提问者对于答案的评价:
很详细!多谢了!

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc358766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午10:38
下一篇 2021年7月5日 上午10:38

相关推荐

  • SMART 200安装好后无法运行

    曾经安装正常的STEP 7-MicroWIN SMART,因后来不适用后,进行了卸载处理(都忘记什么时候卸载的怎么卸载的)。今天需要安装了一下,安装完成,未报错…

    SIMATIC S7-200 2021年7月5日
  • 1200与samrt 200通过以太网连接

    项目网络构架:叉车(是移动的,类似行车只有一根电源线)包含1个交换机,它连接有1个1215和1个摩莎无线通讯AWK-3131A。地面有5个设备,每个设备有1个SAMRT …

    SIMATIC S7-200 2021年7月5日
  • S7-200控制LED单元板(08标准接口)能实现吗?

    S7-200控制LED单元板(08标准接口)能实现吗? 最佳答案 你把LED单元板(08标准接口)各针脚的功能弄明白之后,及相应的工作电压搞清楚(PLC输入和输出一般为24V),就…

    SIMATIC S7-200 2021年7月5日
  • 200的pld控制

    200的pID控制三个固态继电器再控制加热棒,选CPU224xp的,选NPN输出,还是PNP输出的?具体接线图有吗?有这个方面的实例更好。可发我邮箱6692222222@163.c…

    SIMATIC S7-200 2021年7月5日
  • PLC200pid参数调节问题

    1.首先请问口诀:【参数整定找最佳,从小到大顺序查;先是比例后积分,最后再把微分加;曲线振荡很频繁,比例度盘要放大;曲线漂浮绕大湾,比例度盘往小扳;曲线偏离回复慢,积分时间往下降;…

    SIMATIC S7-200 2020年10月31日
  • microwin软件如何把不同程序合并在一起

    如题,s7-200编程软件如何把不同程序合并在一起?或者说想把程序B的某一部分和状态表等copy到程序A要如何操作?直接copy好象不行,比如程序B是用功能块编的,而程序A是用梯形…

    SIMATIC S7-200 2021年7月5日
  • G120变频器12311

    6SL3210-1PE32-1UL0这个功率模块有内置进线电抗器吗?谁有这个资料给个链接,谢谢 最佳答案 这个没有,西门子大功率的装置都不含有进线电抗,,相应的资料技术数据在全球技…

    SIMATIC S7-200 2021年7月5日
  • 高速计数器控制字中计数速率的选择?

    我看论坛中有高手说,“可根据被控制对象所要求的精度来选择高速计数器的倍频”。既然选择1倍频和4倍频,高速计数器读出的还是那么多个脉冲.那么在内部运算中是如何进行放大的?能否举个例子…

    SIMATIC S7-200 2020年10月31日
  • 关于程序的问题 有个郁闷

    这个VB5等于255的时候,那个比较指令也通了,但就是后面那个mov指令就是没有通过,假如vb5等于0的时候,后面的mov单元就会通的,,,郁闷啊 请高手指点 问题补充:…

    2019年6月10日
  • CPU226与224之间通讯

    系统中有两个CPU,分别是226与224,如何将226作为主机,通过Profi_bus电缆,来改变224的数字量输出点。 最佳答案 Profi_bus  在20…

    2020年10月31日

发表回复

登录后才能评论