基于嵌入式设备电压输出类型的回检补偿设计思路

**

基于嵌入式设备电压输出类型的回检补偿设计思路

设计目的:

为适应实际现场中不同设备在接收电压信号的实际值与上位机软件中操作员的预设电压值不匹配(通常是压降),原因可以是物理距离或是其他不可抗力。本模块通过设计回检电路,对实际现场端的设备电压做出检测,并及时返回给卡件,卡件内部做出运算并提高电压输出以匹配。

几个概念:
1.软件码值(上位机码值/工程量):工业现场用于方便计算或理解的概念数字或理论数字的集合,其数值的大小可以表示某种信号的信号量或其他含义,本模块设计中用0 到 20000为软件码值的范围。

2.量程:顾名思义,用于标记一个设备的输出或者是输入的范围,工业现场的设备中可以通过上位机软件对系统中的单独设备进行一个量程上的修改,比如4-20mA或0-20mA,量程的上限或下限是可以在一定范围内任意给予的(比如某芯片可输出正负13V,那么理论上就可以在正负13V内任意确定上下限)。本文采用的基础量程是-10V到+10V。

3.实际码值:工业控制系统在上位机软件中将软件码值通过控制器下发给每一个IO卡后,IO卡会根据量程,将他们转化为实际码值,实际码值与PWM占空比直接关联。

4.PWM值:即占空比,控制输出的参数。

回检补偿流程图:

基于嵌入式设备电压输出类型的回检补偿设计思路

参数对照表(量程以- +5V为例)

工程量 / 0 / 10000 /20000
最大量程 / -10V / 0V /+10V
PWM参数 / 4500 / 2500 / 500

案例量程 / -5V / 0V / +5V
实际码值 / 5000 / 10000 / 15000

回检AD采样电压值 / 0.75V / 1.25V /1.75V
AD采样码值U8 / 0 / / 4096

详细介绍:

前提条件:
软件输出码值15000;
量程-5V到+5V;
回检补偿的容忍范围是+/- 0.1V即20pwm参数(这个电压对应pwm参数的比例需要详细参考具体的输出芯片)

流程过程:

1.上位机下发工程量=15000,在量程±5V内表示实际需要输出一个2.5V的电压值;
2.实际卡件接收到15000,根据另一个量程参数,将15000转化为12500(这一步是根据我们内部基本码值依旧使用最大量程±10V对应的0-20000);
3.将每个通道的实际工程量转化为pwm占空比参数,同时在这一步记录下预设输出pwm值;
4.输出电压
5.现场端设备接收到我们的电压值;
6.检测现场端的电压值;
7.将现场电压通过AD采样获得一个AD值,根据基准电压和pwm等参数比对出现场的实际真实电压,并将这个电压值转化为我们的pwm值;
8.比对并判断预设输出的pwm值与回检获得的电压转化后的pwm值,如果两者差值DeltaPWM超过了我们的容忍范围(0.1V),就将差值作为一个新的增幅加到下一次进入的pwm值,新的pwm值将会输出更高的电压值以保证现场设备正常工作;

几个思考节点:

这样设计的好处
这个回检补偿模块设计的影响端和判断端是在整个卡件输出的代码模块的末端,因此,它并不会和其他的标定功能,自由量程功能发生冲突,甚至在某种说法上可以直接代替标定功能(不过由于标定功能是为了输出准确,而不是修正压降,所以我没有这么做)。此外可以通过上位机的控制,对每个不同的IO卡中的个别通道做出“是否需要回检补偿的功能”使能,既可以保证原有的功能正常工作也可以让卡件的使用更加灵活。最后在代码上可移植性很高,只需要接口很少的地方就能复用,主要针对修改的是输出的方式。