尊重原创 勿抄袭
勿私放其他平台
前 言
在工业控制中,我们经常会用到PTO和PWM控制。
简单粗暴的解释:
- PTO为脉冲串输出,一般用于速度和位置控制,如步进电机定位控制的场景。
- PWM为脉宽调制输出,一般用于速度和占空比控制,如切换烧嘴大小火实现温控的场景。
AB Micro800系列PLC的编程软件Connected Components Workbench中有PWM指令,但是该指令仅适用于 Micro820 2080-LC20-20QBB 控制器。那么当我们使用Micro830或Micro850时,就必须将PTO轴作为PWM使用。用户手册中有相关实例,但该实例有错漏,实际应用中不能照搬手册。
一、软硬件条件
编程软件:Connected Components Workbench 12.00.00 开发版
PLC型号:Micro850 2080-LC50-24QBB
控制对象:SSR三相固态接触器控制电加热器
参考资料:《Micro830与Micro850可编程控制器用户手册》
二、实施步骤
1、首先明确2080-LC50-24QBB支持2路PTO/PWM。
对应的端子见下图。
因为我们的应用场景是SSR的占空比控制,因此没有方向、正负限位以及原点等需求。这里选用PTO0(EM_00),模块接线图和实物接线如下图
2、打开CCW12软件,添加相应的控制器
3、组态轴,添加一个新轴PWM0
选择EM_0通道,即输出为DO_00,方向为DO_03。启用、原位、就绪、接触式探测输入,均不需要。
单位定义为:位置revs,时间sec。每转脉冲1.0,每转行程1revs。其他默认值。
硬限位和软限位均不需要。
开始/停止速度和最大速度根据实际设置,这里设置为1.0revs/sec和50.0revs/sec。其他默认值。
同样的,零位也不需要。
三、编程
创建2个全局变量
1)G_PWM_Duty_Cycle:Real;//SSR工作占空比
2)G_PWM_Frequency:Real;//SSR工作频率
创建3个局部变量
1)Update_PMW_Duty_Cycle:Bool;//循环接通位
2)MoveVelocity_Execute:Bool;//更改频率的执行位
3)PWM0_Frequency:Real;//PWM0当前频率设定值
初始化轴PWM0。用首次扫描位调用MC_Power指令
使用MC_WriteParameter指令(参数1005),设置占空比。
Execute执行位用局部变量Update_PMW_Duty_Cycle循环触发。
Value是占空比值,这里填全局变量G_PWM_Duty_Cycle,一般情况下我们会用PID的输出值给定占空比。
使用MC_MoveVelocity指令,设置频率。
首次扫描结束后接通MC_MoveVelocity指令。
Execute执行位填上局部变量MoveVelocity_Execute。
Velocity是频率值,填上局部变量PWM0_Frequency。
当全局变量G_PWM_Frequency与PWM0_Frequency不同时,将G_PWM_Frequency写入PWM0_Frequency,并触发一次MoveVelocity_Execute。
四、下载程序
下载程序,监视轴状态
五、实际使用
实际使用中,因为我个人不太习惯设定脉冲频率,而更喜欢使用时间单位,感觉这样比较直观。
所以在HMI中我一般都会以秒为单位设定周期时间,然后换算成频率,再给到G_PWM_Frequency。换算公式:f=1/t。(f是频率,t为秒时间)。那么当设定时间为1秒,占空比为50%,则DO点接通0.5秒断开0.5秒,当设定时间为0.1秒,占空比为50%,则DO点接通0.05秒断开0.05秒。
作 者 简 介
剑指工控250号技师
从事工业自动化系统集成十余年,擅长吹牛、压网线、白嫖官方和同行的实例库。没经历过专业培训和学习的以赛代练型野路子选手。
more+