第24311章 本地变量和其他变量
前言
回零模块
FB_CaliAbsPos_googol(FB)
(**读取轴配置)
ReadCaliPrm
(*读取轴文件参数*)
SysFileRead(dwFile,ADR(alrAbsDir_Pos_Pluse_LaserDir_Laser[1,1]), dwTemp)
(写入标定文件配置)
WriteCaliPrm
(*对标定参数进行写入*)
SysFileWrite(dwFile, ADR(alrAbsDir_Pos_Pluse_LaserDir_Laser[1,1]), dwTemp)
一、本地变量
(将标定文件的值赋值给本地变量)
alrAbsDir_Pos_Pluse_LaserDir_Laser : ARRAY[1..MAX_AXIS_COUNT,1..5] OF LREAL;
(*1 绝对值编码器方向 2 标定的绝对值编码器位置 3 编码器每转脉冲数 4辅编方向 5辅编参数*)
二、数据备份变量
(数据备份)
alrDateTemp : ARRAY[1..MAX_AXIS_COUNT,1..5] OF LREAL;(*数据备份*)
IF NOT bReadErr THEN
bDone := TRUE;
alrDateTemp := alrAbsDir_Pos_Pluse_LaserDir_Laser;
END_IF
三、HMI可视化界面变量
(HMI可视化界面变量)
5:g_fbIO_SET.relationVar[1]
6:g_fbIO_SET.relationVar[2]
0:g_fbIO_SET.relationVar[3]
0:g_fbIO_SET.relationVar[4]
7:g_fbIO_SET.relationVar[5]
8:g_fbIO_SET.relationVar[6]
12:g_fbIO_SET.relationVar[7]
10:g_fbIO_SET.relationVar[8]1#叉原位:g_fbIO_SET.IO_describe[1]
2#叉原位:g_fbIO_SET.IO_describe[2]
备用:g_fbIO_SET.IO_describe[3]
备用:g_fbIO_SET.IO_describe[4]
上层有无料:g_fbIO_SET.IO_describe[5]
下层有无料:g_fbIO_SET.IO_describe[6]
左超高:g_fbIO_SET.IO_describe[7]
货物左超限上:g_fbIO_SET.IO_describe[8]
(*开始标定*)
IF tg_r_Cali.Q THEN
(*读取绝对值编码器未换算位置*)
IF GT_RN_GetEcatEncPosEx(g_iCliAxis,ADR(adiAbsPos_Temp)) <> 0 THEN
ALARM_GET_MTN_CARD_PARA := TRUE;ALARM_GET[6,3] :=TRUE;
END_IF
(*读取绝对编码器的真实位置*)
alrAbsDir_Pos_Pluse_LaserDir_Laser[g_iCliAxis,2] := UDINT_TO_LREAL(DINT_TO_UDINT(adiAbsPos_Temp[1]))+DINT_TO_LREAL(adiAbsPos_Temp[2])*4294967296;
(*将当前的绝对值编码器位置写入到要所要标定轴的位置*)
(*辅编方向*)
alrAbsDir_Pos_Pluse_LaserDir_Laser[g_iCliAxis,4] := g_LaserDir;
(*标定时激光位置--hans*)
alrAbsDir_Pos_Pluse_LaserDir_Laser[g_iCliAxis,5] := g_fbFB_ReadLaserPos.alrLaserPosAxis[g_iCliAxis];
WriteCaliPrm;
CMD_AXIS_HOME_ALL := TRUE;
END_IF
四、上传用户变量
IO_SET
UerVar_Ctrl
g_arUserVar : ARRAY[1..USER_VAR_COUNT] OF REAL; (*4字节浮点型用户变量*)
g_arUserVar[Temp1] := 1-divalue[j];(*发送数据*)
win1.7 := LREAL_TO_BOOL(g_arUserVar[16]);
win1.8 := LREAL_TO_BOOL(g_arUserVar[14]);
win1.9 := LREAL_TO_BOOL(g_arUserVar[12]);
win1.10 := LREAL_TO_BOOL(g_arUserVar[13]);