AB Micro830/Micro850实现PWM控制

2021-11-09 14:27:31 浏览数 (3)

JZGKCHINA

工控技术分享平台

尊重原创 勿抄袭

勿私放其他平台

前 言

在工业控制中,我们经常会用到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号技师

从事工业自动化系统集成十余年,擅长吹牛、压网线、白嫖官方和同行的实例库。没经历过专业培训和学习的以赛代练型野路子选手。

0 人点赞