
This program writes system parameter files which can then be loaded. Also, it writes a loadable rapid program module. I wasn't sure when I set out to do this if it would even work. It does! I had to cut out some stuff to make it fit this article. But the gist of it is there. Can you tell I like programming ABB robots? Real programming, stuff that maybe no one has ever tried to do before or thought of before. New and interesting challenges keep things from getting boring. The purpose of doing this is explained in the comments below in the program.
Code
MODULE Commission_5419_5420
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! This Module was written to commission Ford Cleveland engine plant #1.
! By TKSE, Auburn Hills, MI, job numbers 5419 and 5420.
! Run the routine rRunCommision to re setup custom pXuser.mod if
! the robot loses it's as-delivered by TKSE setup. For example,
! the flash drive is corrupted and the system gets reinstalled new with
! IFWC. Or, if the robot has been replaced. In this case the user MUST
! replace the old robot serial number in the routine with the new robot
! serial number or the new robot will not get setup the same as the one
! that it replaced. This routine will also write in the system parameters
! sysuser.cfg and mmcuser.cfg in the frameworks directory. Any other customizations
! will be added as necessary.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
VAR string stRobotName;
PERS string stServerPath;
VAR IODev WritePars;
VAR IODev WriteMod;
VAR string ReadStr;
VAR num ReadIndex;
VAR num WriteIndex;
VAR string stSerialNoHigh1;
VAR num nSerialNoLow1;
VAR string stSerialNoHigh2;
VAR num nSerialNoLow2;
VAR string stSerialNoHigh3;
VAR num nSerialNoLow3;
VAR string stSerialNoHigh4;
VAR num nSerialNoLow4;
VAR dir Directory;
VAR string FileName;
PROC rRunCommission()
!!!!!! READ THIS!!!!!!!
! Check run mode so program will not loop
! Needs to only run once... if it loops and
! then stops somewhere in the middle some
! files could be incomplete or corrupted.
! Make sure single cycle is selected from
! the quickset menu...the button on the
! bottom right corner of the Pendant screen.
!
! Read in robot serial numbers to be used in figuring out which
! p1user.mod to write into the frameworks directory or anything
! else which might be unique to that robot.
WHILE RunMode() = RUN_CONT_CYCLE DO
TPErase;
TPWrite "Please change run mode to single cycle.";
WaitTime 1;
ENDWHILE
TPWrite "Reading robot serial number to identify system...";
ReadCfgData "MOC/ROBOT_SERIAL_NUMBER/rob_1" ,"robot_serial_number_high_part",stSerialNoHigh1;
ReadCfgData "MOC/ROBOT_SERIAL_NUMBER/rob_1","robot_serial_number_low_part",nSerialNoLow1;
ReadCfgData "MOC/ROBOT_SERIAL_NUMBER/rob_2" ,"robot_serial_number_high_part",stSerialNoHigh2;
ReadCfgData "MOC/ROBOT_SERIAL_NUMBER/rob_2","robot_serial_number_low_part",nSerialNoLow2;
ReadCfgData "MOC/ROBOT_SERIAL_NUMBER/rob_3" ,"robot_serial_number_high_part",stSerialNoHigh3;
ReadCfgData "MOC/ROBOT_SERIAL_NUMBER/rob_3","robot_serial_number_low_part",nSerialNoLow3;
ReadCfgData "MOC/ROBOT_SERIAL_NUMBER/rob_4" ,"robot_serial_number_high_part",stSerialNoHigh4;
ReadCfgData "MOC/ROBOT_SERIAL_NUMBER/rob_4","robot_serial_number_low_part",nSerialNoLow4;
! Open IODev to frameworks syspar and write in the sysuser
Close WritePars;
TPWrite "Writing standard IFWC sysuser.cfg file...";
Open "/hd0a/ifwc/syspar/" \File:="sysuser.cfg", WritePars;
Write WritePars, "SYS:CFG_1.0:5:0::";
Write WritePars, "#";
Write WritePars, "# -------------------------------------------------------------------";
Write WritePars, "# SYSUSER.CFG";
Write WritePars, "# -------------------------------------------------------------------";
Write WritePars, "#";
Write WritePars, "# Description: This config file defines system parameters";
Write WritePars, "# defined by the User";
Write WritePars, "#";
Write WritePars, "# Change History:";
Write WritePars, "# 02-15-2012 AJH Created";
Write WritePars, "# 11-25-13 TKSE customized for Job#'s 5419-5420";
Write WritePars, "# Ford Cleveland engine plant #1";
Write WritePars, "#";
Write WritePars, "# -------------------------------------------------------------------";
Write WritePars, "#";
TPWrite "Writing job specific sysuser.cfg parameters...";
Write Writepars, "CAB_EXEC_HOOKS:";
Write WritePars, " ";
IF nSerialNoLow1 <> 500328 THEN
Write WritePars, " -Routine ""Pr_EvtPowerOnWZ"" -Shelf ""POWER_ON"" -Task ""T_ROB1"" -SeqNo 1";
Write WritePars, " ";
ENDIF
Write WritePars, " -Routine ""UserPowerOn"" -Shelf ""POWER_ON"" -Task ""T_ROB1"" -SeqNo 1";
Write WritePars, " ";
Write WritePars, " -Routine ""UserPowerOn"" -Shelf ""POWER_ON"" -Task ""T_PROC1"" -SeqNo 1";
! If system is a multi-move write parameters for ROB 2-4 if present
IF nSerialNoLow2 > 0 THEN
Write WritePars, " ";
IF nSerialNoLow2 <> 500329 THEN
Write WritePars, " -Routine ""Pr_EvtPowerOnWZ"" -Shelf ""POWER_ON"" -Task ""T_ROB2"" -SeqNo 1";
Write WritePars, " ";
ENDIF
Write WritePars, " -Routine ""UserPowerOn"" -Shelf ""POWER_ON"" -Task ""T_ROB2"" -SeqNo 1";
Write WritePars, " ";
Write WritePars, " -Routine ""UserPowerOn"" -Shelf ""POWER_ON"" -Task ""T_PROC2"" -SeqNo 1";
ENDIF
IF nSerialNoLow3 > 0 THEN
Write WritePars, " ";
Write WritePars, " -Routine ""Pr_EvtPowerOnWZ"" -Shelf ""POWER_ON"" -Task ""T_ROB3"" -SeqNo 1";
Write WritePars, " ";
Write WritePars, " -Routine ""UserPowerOn"" -Shelf ""POWER_ON"" -Task ""T_ROB3"" -SeqNo 1";
Write WritePars, " ";
Write WritePars, " -Routine ""UserPowerOn"" -Shelf ""POWER_ON"" -Task ""T_PROC3"" -SeqNo 1";
ENDIF
IF nSerialNoLow4 > 0 THEN
Write WritePars, " ";
Write WritePars, " -Routine ""Pr_EvtPowerOnWZ"" -Shelf ""POWER_ON"" -Task ""T_ROB4"" -SeqNo 1";
Write WritePars, " ";
Write WritePars, " -Routine ""UserPowerOn"" -Shelf ""POWER_ON"" -Task ""T_ROB4"" -SeqNo 1";
Write WritePars, " ";
Write WritePars, " -Routine ""UserPowerOn"" -Shelf ""POWER_ON"" -Task ""T_PROC4"" -SeqNo 1";
ENDIF
Write WritePars, "#";
Write Writepars, "CAB_TASK_MODULES:";
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob1/r1_style_1.mod"" -ModName ""R1_Style"\NoNewLine;
Write WritePars, "_1""\\";
Write WritePars, " -Task ""T_ROB1""";
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob1/r1_data.mod"" -ModName ""R1_data"""\NoNewLine;
Write WritePars, "\\";
Write WritePars, " -Task ""T_ROB1""";
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_proc1/p1user.mod"" -ModName ""P1USER"""\NoNewLine;
Write WritePars, "\\";
Write WritePars, " -Task ""T_PROC1""";
Write WritePars, " ";
IF nSerialNoLow1 = 500328 THEN
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob1/setup_r1.mod"" -ModName ""Setup_R1"""\NoNewLine;
Write WritePars, "\\";
Write WritePars, " -Task ""T_ROB1""";
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob2/pressctr.mod"" -ModName ""PressCtr"""\NoNewLine;
Write WritePars, "\\";
Write WritePars, " -Task ""T_ROB2""";
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob2/setup_r2.mod"" -ModName ""Setup_R2"""\NoNewLine;
Write WritePars, "\\";
Write WritePars, " -Task ""T_ROB2""";
ENDIF
! If system is a multi-move write parameters for ROB 2-4 if present
IF nSerialNoLow2 > 0 THEN
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob2/r2_style_1.mod"" -ModName ""R2_Style"\NoNewLine;
Write WritePars, "_1""\\";
Write WritePars, " -Task ""T_ROB2""";
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob2/r2_data.mod"" -ModName ""R2_data"""\NoNewLine;
Write WritePars, "\\";
Write WritePars, " -Task ""T_ROB2""";
ENDIF
IF nSerialNoLow3 > 0 THEN
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob3/r3_style_1.mod"" -ModName ""R3_Style"\NoNewLine;
Write WritePars, "_1""\\";
Write WritePars, " -Task ""T_ROB3""";
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob3/r3_data.mod"" -ModName ""R3_data"""\NoNewLine;
Write WritePars, "\\";
Write WritePars, " -Task ""T_ROB3""";
ENDIF
IF nSerialNoLow4 > 0 THEN
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob4/r4_style_1.mod"" -ModName ""R4_Style"\NoNewLine;
Write WritePars, "_1""\\";
Write WritePars, " -Task ""T_ROB4""";
Write WritePars, " ";
Write WritePars, " -File ""HOME:/../../ifwc/home/t_rob4/r4_data.mod"" -ModName ""R4_data"""\NoNewLine;
Write WritePars, "\\";
Write WritePars, " -Task ""T_ROB4""";
ENDIF
Close WritePars;
WaitTime 0.1;
TPWrite "Writing standard IFWC mmcuser.cfg file...";
Open "/hd0a/ifwc/syspar/" \File:="mmcuser.cfg", WritePars;
Write WritePars, " MMC:CFG_1.0:5:0::";
Write WritePars, " #";
Write WritePars, " # -------------------------------------------------------------------";
Write WritePars, " # MMCUSER.CFG";
Write WritePars, " # -------------------------------------------------------------------";
Write WritePars, " #";
Write WritePars, " # Description: This config file defines the man machine interface";
Write WritePars, " # for user functions";
Write WritePars, " #";
Write WritePars, " # Change History:";
Write WritePars, " # 11-18-2011 AJH Created";
Write WritePars, " # 11-25-13 TKSE customized for Job#'s 5419-5420";
Write WritePars, " # Ford Cleveland engine plant #1";
Write WritePars, " #";
Write WritePars, " # -------------------------------------------------------------------";
Write WritePars, " #";
Write WritePars, " MMC_REAL_ROUTINE:";
Write WritePars, " -name ""GoToCalibPos"" -hidden";
Write WritePars, " -name ""SaveUserMod"" -hidden";
Write WritePars, " -name ""TraceUserMod"" -hidden";
Write WritePars, " #";
Write WritePars, " MMC_SERV_ROUT_STRUCT:";
Write WritePars, " -name ""GoToCalibPos""";
Write WritePars, " -name ""SaveUserMod""";
Write WritePars, " -name ""TraceUserMod""";
Close WritePars;
WaitTime 0.1;
TPWrite " Writing robot specific mmcuser parameters...";
TEST nSerialNoLow1
CASE 100143:
Open "/hd0a/ifwc/syspar/" \File:="mmcuser.cfg", WritePars\Append;
Write WritePars, " #";
Write Writepars, " IO_MOST_COMMON:";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_CmdRdy"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Closed"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Open"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_RunDownComplete"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_RunDownNotComplete"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_StepMode"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_StyleRdy"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_DryCycle"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_MotorOn"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_Start"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_StartMain"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_Stop"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_StopCycle"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfConveyor"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_CmdComp"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_HomePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_MoveHome"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyCmd"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyStyle"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdySync"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqClose_Gripper"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqOpen_Gripper"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_AutoOn"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_CycleOn"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_HeartBeat"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_RunchOk"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_CmdCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_DecCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_StyleCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_CmdCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_DecCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_FaultCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_PathSeg"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_StyleCode"" -signal_type ""GO""";
CASE 100144:
Open "/hd0a/ifwc/syspar/" \File:="mmcuser.cfg", WritePars\Append;
Write WritePars, " #";
Write Writepars, " IO_MOST_COMMON:";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_BackOutComplete"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_BackOutNotComplete"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Closed"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Open"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_ToolChgrLocked"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_ToolChgrUnlocked"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfStation1"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfStation2"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfStation3"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfStation4"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_HomePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ServicePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_CmdCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_StyleCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_CmdCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_StyleCode"" -signal_type ""GO""";
CASE 100205:
Open "/hd0a/ifwc/syspar/" \File:="mmcuser.cfg", WritePars\Append;
Write WritePars, " #";
Write Writepars, " IO_MOST_COMMON:";
Write WritePars, " ";
Write WritePars, " -signal_name ""di24BrakeCheckOK1"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""di25SyncCheckOK1"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_MoveHome"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_OverrideOn"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_StartMain"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_StopCycle"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_BrakeReq"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_SyncReq"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_BrakePassOK"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_SyncPassOK"" -signal_type ""DO""";
CASE 500300:
Open "/hd0a/ifwc/syspar/" \File:="mmcuser.cfg", WritePars\Append;
Write WritePars, " #";
Write Writepars, " IO_MOST_COMMON:";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_CmdRdy"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_Start"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_StartMain"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_Stop"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_StopCycle"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfConveyor"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_CmdComp"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_HomePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyCmd"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyStyle"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdySync"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_HeartBeat"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_RunchOk"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_CmdCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_DecCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_StyleCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_CmdCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_DecCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_StyleCode"" -signal_type ""GO""";
CASE 500301:
Open "/hd0a/ifwc/syspar/" \File:="mmcuser.cfg", WritePars\Append;
Write WritePars, " #";
Write Writepars, " IO_MOST_COMMON:";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_CmdRdy"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_Start"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_StartMain"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_Stop"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diSYS_StopCycle"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfConveyor"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_CmdComp"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_HomePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyCmd"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyStyle"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdySync"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_HeartBeat"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_RunchOk"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_CmdCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_DecCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_StyleCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_CmdCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_DecCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_StyleCode"" -signal_type ""GO""";
CASE 500355:
Open "/hd0a/ifwc/syspar/" \File:="mmcuser.cfg", WritePars\Append;
Write WritePars, " #";
Write Writepars, " IO_MOST_COMMON:";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Closed"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Open"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper2Closed"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper2Open"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_PP_Gripper1"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfConveyor"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfStation2"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_HomePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_MotSupOn"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_MoveHome"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_MoveService"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyCmd"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqClose_Gripper1"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqOpen_Gripper1"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ServicePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_HeartBeat"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_StyleCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_CmdCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_StyleCode"" -signal_type ""GO""";
CASE 500373:
Open "/hd0a/ifwc/syspar/" \File:="mmcuser.cfg", WritePars\Append;
Write WritePars, " #";
Write Writepars, " IO_MOST_COMMON:";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_CmdRdy"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_ExtRsp"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Closed"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Open"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_ToolChgrLocked"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_ToolChgrUnlocked"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_StyleRdy"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_MoveHome"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_MoveService"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_MoveUser"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_NoHoldCycle"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_StepMode"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ClearOfConveyor"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_CmdComp"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_FaultActive"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_HomePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_MotSupOn"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_MotSupTrigg"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyCmd"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyStyle"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdySync"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqClose_Gripper"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqClose_Gripper"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ServicePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_AutoOn"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_CycleOn"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_HeartBeat"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_CmdCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_DecCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_StyleCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_CmdCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_DecCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_FaultCode"" -signal_type ""GO""";
CASE 500383:
Open "/hd0a/ifwc/syspar/" \File:="mmcuser.cfg", WritePars\Append;
Write WritePars, " #";
Write Writepars, " IO_MOST_COMMON:";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_CmdRdy"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Closed"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper1Open"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper2Closed"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_Gripper2Open"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_PP_Gripper1"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_PP_Gripper2"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_StepMode"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_StyleRdy"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_ToolChgrLocked"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""diR1_ToolChgrUnlocked"" -signal_type ""DI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_Clr_DropOffPosB"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_Clr_KeyupA1"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_Clr_KeyupA2"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_Clr_PickUpPosA"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_CmdComp"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_FaultActive"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_HomePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_MotSupOn"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_MotSupTrigg"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyCmd"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdyStyle"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_RdySync"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqClose_Gripper1"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqClose_Gripper2"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqOpen_Gripper1"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ReqOpen_Gripper2"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doR1_ServicePos"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_AutoOn"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_CycleOn"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""doSYS_HeartBeat"" -signal_type ""DO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_CmdCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_DecCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""giR1_StyleCode"" -signal_type ""GI""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_CmdCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_DecCode"" -signal_type ""GO""";
Write WritePars, " ";
Write WritePars, " -signal_name ""goR1_FaultCode"" -signal_type ""GO""";
ENDTEST
Close WritePars;
Close WriteMod;
! Open IODev to write in robot specific p1user.mod
Open "/hd0a/ifwc/home/t_proc1/p1user.mod", WriteMod;
TPWrite "Writing standard IFWC p1user.mod...";
! Writes standard header for all p1user.mod
Write WriteMod, "%%%";
Write WriteMod, " VERSION:1";
Write WriteMod, " LANGUAGE:ENGLISH";
Write WriteMod, "%%%";
Write WriteMod, " ";
Write WriteMod, "MODULE P1USER";
Write WriteMod, "! Custom module for commissioning " + stSerialNoHigh1\NoNewLine;
Write WriteMod, "-"\Num:=nSerialNoLow1;
Write WriteMod, "!";
Write WriteMod, "! Installed "\NoNewLine;
Write WriteMod, CDate() + " " + CTime();
Write WriteMod, "! Created for TKSE job numbers 5419 and 5420,";
Write WriteMod, "! Ford Cleveland engine plant #1";
Write WriteMod, "! By TKSE, Auburn Hills, MI.";
Write WriteMod, "!------------------------------------------------------------------------------";
! Robot serial number specific data, routines, mainly for
! MH traps to set payload
TPWrite "Writing robot specific p1user.mod code...";
TEST stSerialNoHigh1
CASE "7600":
TEST nSerialNoLow1
CASE 100141:
Write WriteMod, " !=========================== Loaddata ===========================";
Write WriteMod, " !";
Write WriteMod, " PERS loaddata LoadGrip1:=[131.2,[310.1,249.2,61.1],[1,0,0,0],4.5,7.2,8.7];";
Write WriteMod, " ! MODULE NAME, VALID, LOADED";
Write WriteMod, " TASK PERS procModInfo_t ProcModTable{2} := [";
Write WriteMod, " [""MODNAME"", FALSE, FALSE],";
Write WriteMod, " [""MODNAME"", FALSE, FALSE]";
Write WriteMod, " ];";
Write WriteMod, "!------------------------------------------------------------------------------";
Write WriteMod, "!#endregion";
Write WriteMod, " ";
Write WriteMod, "!#region CODE_DECL_SECTION";
Write WriteMod, "!------------------------------------------------------------------------------";
Write WriteMod, " PROC UserPowerOn()";
Write WriteMod, " ! Shelf routine run when the robot is restarted (warm start or cold start)";
Write WriteMod, " ! from a remote client or by power on.";
Write WriteMod, " ENDPROC";
Write WriteMod, " ";
Write WriteMod, " !----------------------------------------------------------------------------";
Write WriteMod, " PROC UserScanPROC()";
Write WriteMod, " ! Called During Background Process Scan";
Write WriteMod, " IF diSYS_DryCycle = 1 THEN";
Write WriteMod, " GripLoad Load0;";
Write WriteMod, " RETURN;";
Write WriteMod, " ENDIF";
Write WriteMod, " IF diR1_Gripper1Closed = 1 THEN";
Write WriteMod, " GripLoad LoadGrip1;";
Write WriteMod, " RETURN;";
Write WriteMod, " ENDIF";
Write WriteMod, " IF diR1_Gripper1Open = 1 THEN";
Write WriteMod, " GripLoad Load0;";
Write WriteMod, " RETURN;";
Write WriteMod, " ENDIF";
Write WriteMod, " WaitTime 0.10;";
Write WriteMod, " ENDPROC";
Write WriteMod, " ";
Write WriteMod, " ";
Write WriteMod, "!------------------------------------------------------------------------------";
Write WriteMod, "!#endregion";
CASE 100143:
Write WriteMod, " !=========================== Loaddata ===========================";
Write WriteMod, " !";
Write WriteMod, " PERS loaddata LoadAdaptor:=[37.3,[60,242.9,82.6],[1,0,0,0],3.5,0,1.2];";
Write WriteMod, " PERS loaddata LoadEngine:=[107,[258.1,253.5,48.7],[1,0,0,0],14.1,11.2,2.9];";
Write WriteMod, " ! MODULE NAME, VALID, LOADED";
Write WriteMod, " TASK PERS procModInfo_t ProcModTable{2} := [";
Write WriteMod, " [""MODNAME"", FALSE, FALSE],";
Write WriteMod, " [""MODNAME"", FALSE, FALSE]";
Write WriteMod, " ];";
Write WriteMod, "!------------------------------------------------------------------------------";
Write WriteMod, "!#endregion";
Write WriteMod, " ";
Write WriteMod, "!#region CODE_DECL_SECTION";
Write WriteMod, "!------------------------------------------------------------------------------";
Write WriteMod, " PROC UserPowerOn()";
Write WriteMod, " ! Shelf routine run when the robot is restarted (warm start or cold start)";
Write WriteMod, " ! from a remote client or by power on.";
Write WriteMod, " ENDPROC";
Write WriteMod, " ";
Write WriteMod, " !----------------------------------------------------------------------------";
Write WriteMod, " PROC UserScanPROC()";
Write WriteMod, " ! Called During Background Process Scan";
Write WriteMod, " IF diSYS_DryCycle = 1 THEN";
Write WriteMod, " GripLoad Load0;";
Write WriteMod, " RETURN;";
Write WriteMod, " ENDIF";
Write WriteMod, ") = 1;";
Write WriteMod, " IF DInput(diR1_RunDownComplete) = 1 AND DInput(diR1_Gripper1Closed) = 1 "\NoNewLine;
Write WriteMod, "THEN";
Write WriteMod, " GripLoad LoadEngine;";
Write WriteMod, " ELSEIF DInput(diR1_RunDownNotComplete) = 1 AND DInput(diR1_Gripper1Closed)"\NoNewLine;
Write WriteMod, " = 1 THEN";
Write WriteMod, " GripLoad LoadAdaptor;";
Write WriteMod, " ELSEIF DInput(diR1_Gripper1Open) = 1 THEN";
Write WriteMod, " GripLoad Load0;";
Write WriteMod, " ENDIF";
Write WriteMod, " WaitTime 0.10;";
Write WriteMod, " ENDPROC";
Write WriteMod, " ";
Write WriteMod, "!------------------------------------------------------------------------------";
Write WriteMod, "!#endregion";
CASE 100144:
Write WriteMod, " !=========================== Loaddata ===========================";
Write WriteMod, " !";
Write WriteMod, " PERS loaddata LoadAdaptor:=[38.3,[92.1,244.3,142.9],[1,0,0,0],4.8,3.9,2.5];";
Write WriteMod, " PERS loaddata LoadEngine:=[167.4,[-195.4,248.8,309.1],[1,0,0,0],39.5,26.2,21."\NoNewLine;
Write WriteMod, "2];";
Write WriteMod, " ! MODULE NAME, VALID, LOADED";
Write WriteMod, " TASK PERS procModInfo_t ProcModTable{2} := [";
Write WriteMod, " [""MODNAME"", FALSE, FALSE],";
Write WriteMod, " [""MODNAME"", FALSE, FALSE]";
Write WriteMod, " ];";
Write WriteMod, "!------------------------------------------------------------------------------";
Write WriteMod, "!#endregion";
Write WriteMod, " ";
Write WriteMod, "!#region CODE_DECL_SECTION";
Write WriteMod, "!------------------------------------------------------------------------------";
Write WriteMod, " PROC UserPowerOn()";
Write WriteMod, " ! Shelf routine run when the robot is restarted (warm start or cold start)";
Write WriteMod, " ! from a remote client or by power on.";
Write WriteMod, " ENDPROC";
Write WriteMod, " ";
Write WriteMod, " !----------------------------------------------------------------------------";
Write WriteMod, " PROC UserScanPROC()";
Write WriteMod, " ! Called During Background Process Scan";
Write WriteMod, " IF diSYS_DryCycle = 1 THEN";
Write WriteMod, " GripLoad Load0;";
Write WriteMod, " RETURN;";
Write WriteMod, " ENDIF";
Write WriteMod, " WaitUntil DInput(diR1_BackOutNotComplete) = 1 OR DInput(diR1_BackOutComplete"\NoNewLine;
Write WriteMod, ") = 1;";
Write WriteMod, " IF DInput(diR1_BackOutNotComplete) = 1 AND DInput(diR1_Gripper1Closed) = 1 "\NoNewLine;
Write WriteMod, "THEN";
Write WriteMod, " GripLoad LoadEngine;";
Write WriteMod, " ELSEIF DInput(diR1_BackOutComplete) = 1 AND DInput(diR1_Gripper1Closed) = 1"\NoNewLine;
Write WriteMod, " THEN";
Write WriteMod, " GripLoad LoadAdaptor;";
Write WriteMod, " ELSEIF DInput(diR1_Gripper1Open) = 1 THEN";
Write WriteMod, " GripLoad Load0;";
Write WriteMod, " ENDIF";
Write WriteMod, " WaitTime 0.10;";
Write WriteMod, " ENDPROC";
Write WriteMod, " ";
Write WriteMod, "!------------------------------------------------------------------------------";
Write WriteMod, "!#endregion";
ENDTEST
TPWrite "Finished setting up robot system...";
TPWrite "An I_Start is required for changes to take effect.";
ERROR
TEST ERRNO
CASE ERR_CFG_NOTFND:
TRYNEXT;
DEFAULT:
STOP;
! CHECK SYSTEM VARIABLE ERRNO
RETURN;
ENDTEST
ENDPROC
ENDMODULE
Display More