由光洋开发的温度检测模块实际可以理解为支持光洋G—UNK总线的高精度热敏电阻检测模块,每个模块支持8个通道的PTl00或KTY84温度传感器。在光洋GDS-09FH数控系统中,G—UNK总线上的每个温度检测模块都会对应一个PLC地址位,并被系统识别为一个独立的PLC模块;在PLC程序中每个温度检测模块对应24输入16输出。温度检测模块将采集到的模拟量信号转化为16bit布尔量,再由PLC程序进行处理,转化为可读出的温度信号。
1 PLC库文件中的功能块及重要变量设置
GONA_temp_1库包含3个独立程序组织单元(POU),功能分别如表1。
表1的PoU全部由光洋ST语言编写。
其中BIT16_To_UINT和UINT_TO_16BIT在TEMP_8_CHANNEL中已经调用,因此可
以直接在程序中应用;TEMP_8_CHANNEL功能块实现温度检测模块的基本功能,实际使用中。需要编程者对该功能块进行实例化。
每个温度检测模块的8个温度传感器输入通道在TEMP_8_CHANNEL功能块中采用循环模式逐个采集,全部8个通道循环完毕需要约108。每个通道基本检测流程见图1。
TEMP_8_CHANNEL中的重要变量:
RTART:BooL,温度转换启动,TRUE代表进行温度转换,FALSE代表停止转换。
READY:BooL.温度模块指定通道A仍转换完毕,可以读取。
ARR_CHANNEL_TO_CHECK: ARRAY[1..8]0FBooL.=8(TRUE),数组的8个元索分别代表温度检测模块的8个输入通道,使用的通道设为TRUE。不使用的通道设为FALSE;在TEMP_8_CHANNEL中,默认所有的数组元素为TRUE。
ARR_TEMP_ALARM:ARRAY[1..8]oF REAL:=8(40),温度超标设定,单位为℃,每通道单独设定。每个数组元素依次对应1个通道。默认40℃。当对应通道的检测温度超过该通道的设定时。输出变量ARR-TEMP_FAULT(错误信息)中对应的相应元素会被设为100℃(温度超标)。
ARR_TEMP_TRANSF: ARRAY[1..8]OF REAL:=8(0.1),通过PLC读入对应通道的16位数字与实际温度的转换系数。目前光洋温度检测模块的转换系数为0.1。该参数为每通道单独设定。
ARR_TEMP_INIT:ARRAY[1..8]OF REAL:=8(_273),加转换,对应A/D数值为0时的每通道单独设定温度,目前光洋温度检测模块应设为_273 K。
BITl-BITl6,为温度传感器的温度输出点,共计2字节16bit,代表目前制定通道的采集温度数值,在程序中需要将其赋值为实际地址。
IN_CHANNEI_l_IN_CHANNEL_3,用于确认目前通道号是否与指定通道号一致。000对应1号通道。111对应8号通道。在程序中需要将地址写入。
DELAY:TIME:=T#10S,每次8通道扫描循环延时,设置为10 s。
CHANNEL_MAX:INT:=8,需要扫描的最高通道号,根据实际情况设置,可以与ARR_CHAN.NEI_TO_CHECK参数组合使用。输出变量:
OUTl~OUT3。为对通道的选择输出,3个bit组合依次确定8个通道。在程序中需将具体地址写入。REFRESH:BooL,A/D转换使能。需写入实际地址。
ARR_TEMPERATURE:ARRAY[1..8]OF REAL:=8(0),温度输出,数组中的每个元素一次对应温度传感器的1个输入通道,其中数值以摄氏度为单位。
ARR_TEMP_FAULT:ARRAY [1...8]OF INT:=8(0),出错信息,数组中的每个元素一次对应温度传感器的1个输入通道。0代表正常,100代表温度超标,200代表操作超时,300代表短路,400代表断路,为排除干扰。每种情况都进行了连续3次检测.如温度超标第一次检测到时设为101.而后第二次扫描如果仍然温度超标,则改为102,第三次改为103。
L00P_INrr:BOoL:=TRUE,第一次8个通道全部扫描完成,ARR』EMP_FAULT中所有数据均可用,该信号在蚰~RT输入信号为FALSE时,也为TRUE。