The M1_Interface program interfaces the PAC"Programmable Automation Controller" PAC is a compact controller that combines the features and capabilities of a PC-based control system with that of a typical programmable logic controller (PLC). A PAC thus provides not only the reliability of a PLC, but also the task flexibility and computing power of a PC. Additionally, because they function and communicate over popular network interface protocols, PACs are able to transfer data from the machines they control to other machines and components in a networked control system to the following items in the system:
. The M1_Interface Program contains the following code:
| Code Segment | Functionality |
|---|---|
|
Resets the error reset button 1 sec after being pushed |
|
|
Pilz Pnoz Relay interface |
If Pilz Pnoz relay trips then machine state set to Standby (unless in the Error Fatal MachineThe complete assembly of all connected parts or devices, of which at least one is movable State ) |
|
Machine State |
Sets machine state based on KOLLMORGEN
|
|
Signal Light Control |
Set Digital outputs based to indicate present machine state |
|
Displays present state |
Sets Remote IO outputs to indicate present state of machine state controller |
|
Function call for Axis Jog Commands in Manual Machine State |
|
|
Read Axes Information |
Read axis information to be displayed in the Kollmorgen AKI: Ax_RefPos, AxActPos, Ax_Act_Speed, A2_PosErr, and A2_ActTorque |
|
Reset KOLLMORGEN AKI Status Information |
Reset Main and Axis Status Word send to the KOLLMORGEN AKI |
|
Analog Input scaling |
|
|
Inertia Calculation |
|
|
Adjust Trigger Reference Position |
| Parameters | Description |
|---|---|
|
AckStateLEDs[i] := (M1_AckState = i); |
Links the appropriate LED on the Control Panel to the present acknowledged operation mode of the state machine |
|
bM1_Standby bM1_Manual bM1_Automatic bM1_ErrorFatal bM1_ErrorStop |
When one of these control panel buttons (bM1_xxxxxx) is pushed, the state machine is requested to change using the parameter M1_CmdState |
|
bM1_CallAutomaticFunction1 := bM1_RunMasterEndless; bM1_CallAutomaticFunction2 := bM1_RunMasterOneCycle; bA1_CallManualFunction1 := bJogAxis1Positive; bA1_CallManualFunction2 := bJogAxis1Negative; bA2_CallManualFunction1 := bJogAxis2Positive; bA2_CallManualFunction2 := bJogAxis2Negative; bA3_CallManualFunction1 := bJogAxis3Positive; bA3_CallManualFunction2 := bJogAxis3Negative; bA4_CallManualFunction1 := bJogAxis4Positive; bA4_CallManualFunction2 := bJogAxis4Negative; |
Links controls in the Control Panel Automatic section to the Call Functions within the M1_StateController program |
|
bA1_CallStandbyFunction1:= rSaveParamAxis1(bSaveParamAxis1); bA1_CallStandbyFunction2:= RestoreParamAxis1(bRestoreParamAxis1); bA2_CallStandbyFunction1:= rSaveParamAxis2(bSaveParamAxis2); bA2_CallStandbyFunction2:= rRestoreParamAxis2(bRestoreParamAxis2); |
Links controls in the Control Panel Standby section to the Call Functions within the M1_StateController program |
|
#ifdef DEF_CStopHWLimitSwitchWired bA1_CallManualFunction1:=bJogAxis1PositiveAND bA1_PosLimitSwitch; bA1_CallManualFunction2:=bJogAxis1NegativeAND A1_NegLimitSwitch; #else bA1_CallManualFunction1 := bJogAxis1Positive; bA1_CallManualFunction2 := bJogAxis1Negative; #endif bA2_CallManualFunction1 := bJogAxis2Positive; bA2_CallManualFunction2 := bJogAxis2Negative; |
Links controls in the Control Panel Manual section to the Call Functions within the M1_StateController program |
|
Copyright © 2015 Kollmorgen™ |
|