关于电加热器的控制程序的编写参考
前一些日子,与众大侠们讨论过关于电加热器控制的一次回路的配置问题,使我有重新整理该加热控制的想法。该设备为西门子840D系统,由德国一家设备制造公司制造,但实际应用时,加热器由于国内好几家电加热器生产厂家无法达到加热外形尺寸精度及单位空间功率的限制,境外订购时间周期长等原因,最后,只能被放弃使用该电加热控制单元,改电加热方式为天然气加热方式使用至今已经有10多年时间了。另外一个放弃的原因是由于模具事先需要掏空处理(均分在底模18个直径40*200mm的加热器安装孔),且需要分多层安装(主要是预埋连接铜排,高温导线层面,耐高温绝缘处理),其中还需要有隔热板处理与主轴的连接,模具总装后,对同心度±0.05mm的要求,在实际操作起来也具有一定的加工、安装难度。
为说明该控制原理,先上一张电加热一次侧控制图:

一次侧回路由电源总开关(断路器3RV1031-4FA10),及漏电保护器(5SM3846-8 63/1000mA)、交流接触器(3RT1036-1BB40)、加热驱动器单元组成对加热总功率18KW的温度控制,其中,温度反馈传感器采用PT100热电阻,需要事先预埋在模具内部并连接好端子。
加热工作原理:
当需要实现主轴设备模具加热或者保温时,先让主轴运行主轴定位步骤(NCK的spos(角度)指令完成定位),完成主轴定位后,加热器通过气动单元将三相加热电源插入到模具加热端子上,一种带弹性(紫铜结构件)的环氧材料连接器,同时,将热电阻PT100一起插入到对应的端子上进行模具的加热和保温,加热器分6组(3KW/组)中心点不接地方式连接。另外,加热控制单元由3个电流变送器检测三相工作电流,控制器的输入为模拟量控制方式。
控制程序:图示部分程序段
三相输入电流检测:
L 695
T #Korr_Faktor_Stromistwert //将常数695装入数据块DB106.DBD72中。
//Stromaufnahme Phase 1
L "Analogeing.Heizstrom Ph1" //A相输入电流值。
L #Korr_Faktor_Stromistwert //除695的常数。
/D
T #Ist_Heizung_A_Ph1 //Istwert Stromaufnahme Heizung, Phase 1
//Stromaufnahme Phase 2
L "Analogeing.Heizstrom Ph2" //B相输入电流值。
L #Korr_Faktor_Stromistwert //除695的常数。
/D
T #Ist_Heizung_A_Ph2 //Istwert Stromaufnahme Heizung, Phase 2
//Stromaufnahme Phase 3
L "Analogeing.Heizstrom Ph3" //C相输入电流值。
L #Korr_Faktor_Stromistwert //除695的常数。
/D
T #Ist_Heizung_A_Ph3 //Istwert Stromaufnahme Heizung, Phase 3
//Stromauswertung min.1
L 8
T #Stromaufnahme_min_10A //将常数8装入数据块DB106.DBD74中。
// 加热控制:
A "Sch Werkzeugheizung ein" //加热开始。
A(
A(
L #Ist_Heizung_A_Ph1 //Istwert Stromaufnahme Heizung, Phase 1
L #Stromaufnahme_min_10A //常数8。
<=D
)
O
A(
L #Ist_Heizung_A_Ph2 //Istwert Stromaufnahme Heizung, Phase 2
L #Stromaufnahme_min_10A //常数8。
<=D
)
O
A(
L #Ist_Heizung_A_Ph3 //Istwert Stromaufnahme Heizung, Phase 3
L #Stromaufnahme_min_10A //常数8。
<=D
)
)
L S5T#15S
SD "verz.Feh.Heizstrom"
A "verz.Feh.Heizstrom"
S #Heizpatronen_defekt //Anzeige Heizpatronen 黚erpr黤en 小于10A时加热启动。
//Stromauswertung min.1
L 8
T #Stromaufnahme_min_10A //将常数8装入数据块DB106.DBD74中。
//
A "Sch Werkzeugheizung ein" //加热开始。
A(
A(
L #Ist_Heizung_A_Ph1 //Istwert Stromaufnahme Heizung, Phase 1
L #Stromaufnahme_min_10A //常数8。
<=D
)
O
A(
L #Ist_Heizung_A_Ph2 //Istwert Stromaufnahme Heizung, Phase 2
L #Stromaufnahme_min_10A //常数8。
<=D
)
O
A(
L #Ist_Heizung_A_Ph3 //Istwert Stromaufnahme Heizung, Phase 3
L #Stromaufnahme_min_10A //常数8。
<=D
)
)
L S5T#15S
SD "verz.Feh.Heizstrom"
A "verz.Feh.Heizstrom"
S #Heizpatronen_defekt //Anzeige Heizpatronen 黚erpr黤en 小于10A时加热启动。
//Stromauswertung min.5
L 5
T #Stromaufnahme_min_5A
//
A "Sch Werkzeugheizung ein"
A(
A(
L #Ist_Heizung_A_Ph1 //Istwert Stromaufnahme Heizung, Phase 1
L #Stromaufnahme_min_5A
<=D
)
O
A(
L #Ist_Heizung_A_Ph2 //Istwert Stromaufnahme Heizung, Phase 2
L #Stromaufnahme_min_5A
<=D
)
O
A(
L #Ist_Heizung_A_Ph3 //Istwert Stromaufnahme Heizung, Phase 3
L #Stromaufnahme_min_5A
<=D
)
)
L S5T#15S
SD "verz.Heiz.k.Strom"
A "verz.Heiz.k.Strom"
S #keine_Stromaufnahme //keine Stromaufnahme小于5A时加热启动。
A "ZM Taste Reset" //MCP板复位按钮I3.7
R #keine_Stromaufnahme
R #Heizpatronen_defekt
加热控制器输出:
AN #Funktion_warmhalten
R #Heiz_Warmhaltwert_gelad
AN #Funktion_warmhalten
O #Heiz_Warmhaltwert_gelad
JC m01
L 18000 //Grundwert f黵 Warmhalten laden
T #Heizwert
A "immer Eins"
S #Heiz_Warmhaltwert_gelad
m01: A #Funktion_warmhalten //位值DB106.DBX76.1。
A(
L #Ist_Temp_Werkz //字值DB106.DBD30.0。
L 130
>D
)
L #Heizwert
JC h_re
L 0
T #Heizwert
AN #Heizen_ein
AN #Funktion_warmhalten
JC hz
A(
L #Ist_Temp_Werkz
L 80
<D
)
L 17000 // (17000) 27650 =>10V
T #Heizwert
JC hz
A(
L #Ist_Temp_Werkz
L 130
<D
)
L 19000 // (19000) 27650 =>10V
T #Heizwert
JC hz
L 23500 // (21500) 27650 =>10V
T #Heizwert
h_re: NOP 0
hz: T "Analog Sollw.Heizpatron." //输出PQW334
T #Heizwert
加热器工作判断:
//Parameter beschreiben
L 12000
T #Heizwert_Grenze_Min
L 25000
T #Heizwert_Grenze_Max
L 1200
T #Heizwert_Add_Faktor
//Timer f. Regeltakt laden
L S5T#1M30S
AN "Imp.Heiz_Reg_Takt_1"
SE "Imp.Heiz_Reg_Takt_0"
AN "Imp.Heiz_Reg_Takt_0"
SE "Imp.Heiz_Reg_Takt_1"
A "Imp.Heiz_Reg_Takt_0"
FP #Heiz_Reg_Flanke
= #Heiz_Reg_Impuls
A #Heiz_Reg_Impuls
JC reg
BEU
reg: NOP 0
A(
L #Soll_Temp_Maske
L #Ist_Temp_Werkz
>D
)
JC hz1
A(
L #Soll_Temp_Maske
L #Ist_Temp_Werkz
<D
)
JC ku1
BEU
hz1: NOP 0 //Temp. zu niedrig, Heizleistung erh鰄en
A(
L #Heizwert
L #Heizwert_Grenze_Max
>I
)
JC hz2
L #Heizwert
L #Heizwert_Add_Faktor
+I
T #Heizwert
hz2: BEU
ku1: NOP 0 //Temp. zu hoch, Heizleistung reduzieren
A(
L #Heizwert
L #Heizwert_Grenze_Min
<I
)
O
A(
L #Ist_Heizung_A_Ph1
L 11
<=I
)
JC ku2
L #Heizwert
L #Heizwert_Add_Faktor
-I
T #Heizwert
ku2: BEU
该控制单元的工况由840D系统屏中组态页面,有三相工作电流、加热器工作状态的设置;显示信息,图示:

由于境外编程习惯都喜好FB的接口变量,所以解释上诉控制程序确实有一定难度,尤其是中间过程的变量转移部分,但整体编辑的控制思路还是可以借鉴的,比如工作电流偏小和工作电流超额定电流的判断(我理解为加热器断线和超温保护)。
加热驱动器外形,图示:

加热器位置的判断:
A #Heizen_ein
AN #Dockstation_Abdeckung
A M 100.4 //启动加热器的互锁条件1
A M 100.5 //启动加热器的互锁条件2
A "MV Dockstation vor" //加热器的气缸加到位
A "DB Nocken".E1_geschlossen //设备加载门的负行程
AN "DB Nocken".E1_geoeffnet //设备加载门的正行程
AN I 62.6
A I 62.7
AN I 62.4
AN I 62.5
= #Schuetz_Freigabe_heizen
A #Schuetz_Freigabe_heizen
L S5T#300MS
SD "verz.Heizung aktivieren"
A "verz.Heizung aktivieren"
= "Sch Werkzeugheizung ein" //Sch黷zansteuerung heizen 输出启动加热Q39.1
因为该原程序是德文版本的,我截取的部分程序段注释有乱码,所以,我在转换为中文时会有一些西里古怪的注释字符,这个大家应该在其它德文版的程序转换为中文版本的也有遇见,不足为奇,实际查看程序时,按电气原理图和实际竣工图纸理解后再自己做一点注释。
考虑相对周到的加热器连接机械部分图示:

与主轴模具电气连接部分还有风冷却单元(防止电气接点发热),弹性连接缓冲装置(气缸推出到模具连接时的缓冲与可靠连接),各种位置的检测单元(安全角度、逻辑控制需要),以及设备的防水处理等均做的十分到位。
总体该加热控制单元设计是比较完善的,无论从机械还是电气方面的设计考虑,均可以作为以后类似工程上的借鉴。