前言
一台设备中除了逻辑动作和轴控制,常常还会有带过程控制,如温控、压力这些。今天本文就是基于台达PLC-Base运动控制器利用04TC模块进行的温度控制。
正文
硬件配置
设置所接热电偶的类型(修改CR1参数设置)、勾选想要读取的通道值,建议采用CR6-CR9的滤波过的温度值。
循环周期任务
笔者我采用200ms是考虑到04TC的AD转换时间是200ms。
PID指令
PIDCtrl(
PID_RUN := bRun,
SV := INT_TO_REAL(In:= g_iHeatSV1) * 10.0 ,//把目标值进行放大
PV := INT_TO_REAL(In:= g_iHeatPV1) * 10.0 ,//把实际值进行放大
PID_MODE := DiPID_Mode,
PID_MAN := FALSE,
CYCLE := DiCycleTime,
Kc_Kp := rKp,
Ti_Ki := rKi,
Td_Kd := rKd,
Tf := rTf,
PID_EQ := FALSE,
PID_DE := FALSE,
PID_DIR := TRUE,
MV_MAX := 1000,
MV_MIN := 0
);
里面尤其需要注意的是 PID_MODE 这个输入是一个 REFERENCE TO DINT 的类型,意味着要给定的变量的时候,变量必需要给定一个绝对地址。
建议在冷机的时候,第一次试加温过程开始整定。
自由运行任务
GPWM指令
GPWM_Out(
Enable := TRUE,
In1 := REAL_TO_INT(In:= Pro_TempPID.PIDCtrl.MV),
In2 := REAL_TO_INT(In:= Pro_TempPID.PIDCtrl.MV_MAX),
Out => g_yHeatOut
);
结尾
在采用04TC或者其他的模拟量输入输出模块的时候,要考虑好本体运动控制器能支持的特殊模块的数量。
Log:
2021-01-05 发布本文