Bonjour.
Voici un exemple de PLC FAGOR :
%PERSO ,MX--,
;
;**********************************************************************
;**Tour/ cnc 8055i/ tourelle 12 postes/ mandrin hydraulique**
;**********************************************************************
;
;
;
;********************** DEFINITION DE VARIABLES ***********************
;
;
;
;********************** DEFINITION DES ENTREES ************************
;
; Base
;
DEF I-EMERG I1 ; Arret d'urgence-24v
DEF I-PUISS I2 ; Puissance machine ok
DEF I-PORTE I81 ; Porte fermée
;
;
; Variateur
;
DEF I-SERVOOKX I4 ; Vars x prets
DEF I-SERVOOKZ I5 ; Vars z prets
DEF I-PROTHER I14 ; Protection variateur broche
;
;
; Outil
;
DEF I-TOUR1 I65 ; Tourelle poids 1
DEF I-TOUR2 I66 ; Tourelle poids 2
DEF I-TOUR3 I67 ; Tourelle poids 3
DEF I-TOUR4 I68 ; Tourelle poids 4
DEF I-STROBE I69 ; Stobe
DEF I-PARITE I70 ; Parit tourelle
DEF I-TOUR5 I71 ; Tourelle poids 5(non utilisé)
DEF I-TOUR6 I72 ; Tourelle poids 6(non utilisé)
DEF I-TOUEC I74 ; Tourelle bloquee
DEF I-THERMTOUR I76 ; Thermique tourelle
;
;
; Mandrin
;
DEF I-OUVMAND I77 ; Pedale ouverture mandrin
DEF I-FERMAND I78 ; Pedale fermeture mandrin
DEF I-MANDOUV I79 ; Mandrin ouvert
DEF I-MANDFER I80 ; Mandrin ferme
;
;
; Contre pointe
;
DEF I-PRECP I16 ; Anticollision CP
;
;
; Axes
;
DEF I-BUTX- I7 ; micro fin de course X-
DEF I-BUTX+ I6 ; micro fin de course X+
DEF I-BUTZ+ I9 ; micro fin de course z-
;
DEF POMMEX I11 ; micro origine x
DEF POMMEZ I10 ; micro origine z
;
; Graissage
;
DEF I-GRAISSAGE I13 ; Niveau de graissage
DEF I-PGRAISSAGE I15 ; Pression de graissage
;
;
; Protection thermique
;
DEF I-THERMHYDRAU I82 ; Thermique centrale hydrau
DEF I-THERMROTTOUR I83 ; Thermique rotation tourelle
DEF I-THERMLUB I84 ; Thermique pompe de lub
DEF I-THERMVENTBROC I85 ; Thermique ventilateur
; moteur broche
DEF I-THERMGRAISSAGE I86 ; Thermique pompe graissage
; glissieres
;
;
;******************** DEFINITION DES SORTIES ************************
;
; Base
;
DEF O-PUISS O1 ; Validation puissance
;
;
; Variateur
;
DEF O-BROCPUISS O2 ; validation puissance broche
DEF O-VADBROC O3 ; Validation variateurs broche
DEF O-VADAXE O4 ; Validation variateurs axes
;
;
; Tourelle
;
DEF O-RTOURAR O33 ; Rotation tourelle arriere
DEF O-RTOURAV O34 ; Rotation tourelle avant
DEF O-FRTOUR O35 ; Deblocage Frein tourelle
;
;
; Mandrin
;
DEF O-HYDMAND O36 ; Goupe hydrau mandrin
DEF O-OUVMAND O37 ; EV ouverture mandrin
DEF O-FERMAND O38 ; EV fermeture mandrin
;
;
; Arrosage
;
DEF O-COOL O5 ; Pompe arrosage
;
;
; Graissage
;
DEF O-GRAISSAGE O8 ; Graissage glissiere;
;
;
;
;********************* DEFINITION DES TEMPORISATEURS *********************
;
;
; T1 Temporisateur MST
; T3 Temporisateur Axe
; T4 Temporisateur defaut frein tourelle
; T6 Temporisateur defaut revolution tourelle
; T7 Temporisateur Graissage
; T8 Temporisateur Graissage
; T9 Temporisateur Graissage
; T11 Temporisateur Broche
; T18 Temporisateur position tourelle non valide
; T19 Temporisateur tourelle non verrouillee
; T21 Temporisateur retard t2
; T22 Temporisateur retard t3
;
;
;************************ DEFINITION DE MARQUES **************************
;
DEF M-ROUT M103 ; tourelle en mvt
DEF ETAP1 M106 ; cycle tourelle
DEF ETAP2 M107 ; cycle tourelle
DEF ETAP01 M108 ; cycle tourelle
DEF ETAP02 M109 ; cycle tourelle
DEF ETAP03 M116 ; cycle tourelle
DEF ETAP04 M117 ; cycle tourelle
DEF OUVMAND M110 ; ouverture mandrin
DEF FERMAND M111 ; fermeture mandrin
DEF ROTAV M112 ; rotation tourelle AV
DEF ROTAR M113 ; rotation tourelle AR
DEF SEREXT M114 ; serrage exterieur
DEF SERINT M115 ; serrage interieur
DEF CALC_OUTIL M32 ; calcul d'outil
DEF ETATMAND M105 ; etat mandrin
DEF BUTANNU M40 ;
DEF CHG_GAM M104 ; changement de gamme en cours
;
;
;************************ INITIALITATION DE VARIABLES **********************
;
CY1
() = ERA O1 34 ; mise a zero marques,entrees,sorties
= ERA C1 256
= ERA T1 256
= ERA R1 256
= ERA M1 2000
= SET TOOLINSP ; STOP + T POUR L'INSPECTION D'OUTIL
;
END
;
;********************** PROGRAMME PRINCIPAL ***************************
;
PRG ; debut prog princ.
REA
;
;********************* ARRET D'URGENCE ET MST ************************
;
I-EMERG = /EMERGEN ; I1= 0 alors AU
;
/ALARM AND /EMERGEN
= O-PUISS
;
NOT I-EMERG
OR NOT O-PUISS = DRO1 ; axe X en visu
= DRO2 ; axe Z en visu
;
;********************** HABILITATION DES AXES ************************
;
I-EMERG AND NOT LOPEN AND I-SERVOOKX AND I-SERVOOKZ
= O-VADAXE
= SERVO1ON ; valid boucle asservissement X
= SERVO2ON ; valid boucle asservissement Z
= SPENA1
= SPENA2
= TG3 3 200
T3 = DRENA1
= DRENA2
;
;
;************************Mandrin Hydraulique**************************
;
DFU B6R563 AND NOT (M3 OR M4)= SET SEREXT
= RES SERINT
;
DFU B5R563 AND NOT (M3 OR M4)= SET SERINT
= RES SEREXT
;
(SEREXT AND I-MANDOUV AND NOT I-MANDFER)
OR (SERINT AND I-MANDFER AND NOT I-MANDOUV) = ETATMAND
;
NOT I-PUISS OR NOT I-EMERG = RES ETATMAND
NOT INCYCLE AND NOT (M3 OR M4) AND (DFU I-OUVMAND OR OUVMAND)
= RES O-FERMAND
= SET O-OUVMAND
NOT INCYCLE AND NOT (M3 OR M4) AND (DFU I-FERMAND OR FERMAND)
= RES O-OUVMAND
= SET O-FERMAND
;
;
;************************ GESTION BROCHE *****************************
;
M19 = SERVOSON ; fct. M19= broc. boucle fermee
;
I-PUISS
AND /EMERGEN AND I-THERMHYDRAU AND NOT I-THERMVENTBROC
= O-BROCPUISS
;
(M3 OR M4) AND NOT ETATMAND = RES M3
= RES M4
= M5
(M3 OR M4) AND ETATMAND = TG3 11 3000
T11 = O-VADBROC ; sortie pour puissance moteur
;
;
;***************************GRAISSAGE*********************************
;
()=TG1 7 10000
()=TG2 8 1800000
ENABLE1 OR ENABLE2 = TEN 8
T8=TG1 9 10000
B1R563 OR T7 OR T9 AND I-GRAISSAGE AND I-THERMGRAISSAGE
= O-GRAISSAGE
DFD O-GRAISSAGE = TRS 7 = TRS 9
;
;
;********************* TRAITEMENT DES M,S,T ***************************
;
;M41 OR M42 OR M43 OR M44 OR M100 OR M101 OR M102 OR M103 = CHG_GAM
DFU MSTROBE OR DFU TSTROBE = TG1 1 100 ; signal valid. fonct. M,T
;
NOT T1
AND NOT M-ROUT ; en cour de rotation tourelle
AND NOT CHG_GAM
= AUXEND ; compte rendu fct. M,T
;
;***************** FEED HOLD *** XFERINH *** STOP *********************
;
;
() =/STOP ; mets la CN en mode interrompu
=/XFERINH ; meme chose mais en fin de bloc
;
I-PUISS
AND NOT LOPEN AND REVOK
AND I-PROTHER AND NOT M-ROUT ;
=/FEEDHOL ; arret des avances (F bleue clair)
;
;*********************** SECURITE CONTRE POINTE ************************
;
B3R563 = BUTANNU ; Touche dégagement butée
I-PRECP ; collision CP
AND NOT BUTANNU ; DEGAGEMENT AXE
= INHIBIT2 ; inhibe l'axe Z
;
;
;************************* TRAITEMENT DE LA TOUCHE START ***************
;
START ; appui sur la touche START (F)
AND I-PORTE ; et porte fermée
AND I-THERMHYDRAU ; et Hydraulique
AND NOT I-THERMVENTBROC ; et ventilation broche
AND I-THERMROTTOUR ; et pas de defaut tourelle
AND NOT INCYCLE ; et pas en cycle (F)
AND O-PUISS ; et sortie puissance
= CYSTART ; validation depart cycle (F)
;
;
;******************************** GESTION OUTIL ************************
;
() = MOV I-TOUR1 R49 008 ; mettre l'entree tourelle 1 dans 49
CPS R49 EQ 52 = MOV 1 R50 ; position 1 tourelle
CPS R49 EQ 21 = MOV 2 R50 ; position 2 tourelle
CPS R49 EQ 22 = MOV 3 R50 ; position 3 tourelle
CPS R49 EQ 55 = MOV 4 R50 ; position 4 tourelle
CPS R49 EQ 56 = MOV 5 R50 ; position 5 tourelle
CPS R49 EQ 25 = MOV 6 R50 ; position 6 tourelle
CPS R49 EQ 26 = MOV 7 R50 ; position 7 tourelle
CPS R49 EQ 59 = MOV 8 R50 ; position 8 tourelle
CPS R49 EQ 28 = MOV 9 R50 ; position 9 tourelle
CPS R49 EQ 49 = MOV 10 R50 ; position 10 tourelle
CPS R49 EQ 50 = MOV 11 R50 ; position 11 tourelle
CPS R49 EQ 19 = MOV 12 R50 ; position 12 tourelle
;
;
;************************ ZONE DE CALCUL ******************************
;
NOT I-EMERG OR T4 OR T6
OR ERR3 OR NOT I-PUISS
= RES O-RTOURAV ; En cas de defaut
= RES O-RTOURAR ; effacement de toutes
= RES O-FRTOUR ; les variables sous
= RES ETAP1
= RES ETAP2
= RES M-ROUT
= RES CALC_OUTIL
;
;
M-ROUT OR O-RTOURAV
= TG2 6 10000 ; T6=sous routine>1Os
T6 = ERR2 ; temps tourelle >10s
( O-RTOURAV
AND NOT O-FRTOUR) = TG2 4 900 ; T4=defaut frein
T4 = ERR1 ; defaut frein tourelle
ETAP2 AND NOT O-RTOURAV
AND (CPS R50 NE R33) ; Position non valide apres
= TG1 18 500 ; evolution tourelle
T18 = ERR3
NOT M-ROUT AND NOT I-TOUEC
= TG1 19 500
T19 = ERR4 ; tourelle non verrouillee
;
;
DFU TSTROBE
= SET CALC_OUTIL ; Si demande d'outil
;
CALC_OUTIL = JMP L2 ; verifie demande outil
;
M-ROUT ; Changement d'outil en cours
= JMP L3 ; Saut a la gestion de la tourelle
;
;
;*********************** BUTEES ELECTRIQUES **************************
;
NOT BUTANNU AND NOT I-BUTX+ = LIMIT+1
NOT BUTANNU AND NOT I-BUTX- = LIMIT-1
NOT BUTANNU AND NOT I-BUTZ+ = LIMIT+2
;
;
;************************ PRISES D'ORIGINES ***************************
;
POMMEX = DECEL1
POMMEZ = DECEL2
REFPOIN1 AND REFPOIN2 = M600
;
;
;********************* HABILITATION DES GAMMES ************************
;
M41 OR M42 OR M43 OR M44 OR M100 OR M101 OR M102 OR M103= CHG_GAM
M41 = SET GEAR1 = RES M41
M42 = SET GEAR2 = RES M42
M43 = SET GEAR3 = RES M43
M44 = SET GEAR4 = RES M44
M100 = RES M100
M101 = RES M101
M102 = RES M102
M103 = RES M103
;
;
;
;************************** ARROSAGE **********************************
;
DFU B2R563 AND NOT O-COOL = SET M08 = RES M09 ; Marche arrosage manu
O-COOL AND DFU B2R563 = SET M09 = RES M08 ; Arret arrosage manu
M08 AND I-THERMLUB = SET O-COOL
M09 AND I-THERMLUB = RES O-COOL
;
;********************** S/ROUTINE FONCTION M ***************************
;
DFU MSTROBE = CAL L10
DFU SSTROBE = CAL L11
;
;************************* MESSAGES **********************************
;
NOT I-PUISS = MSG1 ; Machine hors tension
NOT I-BUTX- = MSG3 ; AXE X EN BUTE NEGATIVE
NOT I-BUTX+ = MSG4 ; AXE X EN BUTE POSITIVE
NOT I-PROTHER = MSG5 ; DEFAUT VARIATEUR BROCHE
NOT I-BUTZ+ = MSG6 ; AXE Z EN BUTE POSITIVE OU CP
DFU START ; Appui sur la touche START (F)
AND NOT I-PORTE = SET MSG7 ; Porte ouverte
I-PORTE =RES MSG7 ;
NOT M600 = MSG8 ; Origine non faites
NOT I-GRAISSAGE = MSG9 ; Niveau graissage bas
O-GRAISSAGE AND NOT I-PGRAISSAGE = MSG10 ; Pression graissage
NOT ETATMAND = MSG11 ; SELEC SERR EXTERIEUR/INTERIEUR
= MSG12 ; OUV/FERM MANDRIN REQUISE
SEREXT = MSG13 ; SERRAGE EXTERIEUR
SERINT = MSG14 ; SERRAGE INTERIEUR
I-PRECP = MSG15 ; COLLISION CONTRE-POINTE
NOT I-THERMLUB = MSG16 ; DISJONCTION POMPE DE LUB
NOT I-THERMGRAISSAGE = MSG17 ; DISJONCTION POMPE DE GRAISSAG
;
;
;****************************** ERREURS *****************************
;
NOT I-PROTHER = ERR5 ; Defaut variateur de broche
NOT I-SERVOOKZ = ERR6 ; Defaut variateur axe Z
NOT I-SERVOOKX = ERR7 ; Defaut variateur axe X
NOT I-THERMHYDRAU = ERR10 ; Defaut hydraulique
I-THERMVENTBROC = ERR11 ; Defaut ventilateur de broche
NOT I-THERMROTTOUR = ERR12 ; Defaut moteur tourelle
;
;********************* FIN DU PROGRAMME PRINCIPAL **********************
;
END
;
;
;************************************************************************
;************************* ROTATION TOURELLE ****************************
;************************************************************************
;
;
;**************** PREPARATION DU CHANGEMENT D'OUTIL *********************
;
L2
()= MOV TBCD R35 1032 ; lire outil demande
(CPS R35 EQ 0) OR (CPS R35 EQ R50) = RES CALC_OUTIL
= RET
(CPS R35 GT 12) = RES CALC_OUTIL
= RET
(CPS R35 LE 12) = MOV R35 R33
= SET ETAP1
ETAP1 = SET M-ROUT
= RES CALC_OUTIL
END
;
;
;******************** CHOIX SENS DE ROTATION ***************************
;
L3
CPS R33 LE R50 = SET ROTAV ; Rotation AV
ROTAV = JMP L4
;
CPS R33 GT R50 = SET ROTAR ; Rotation AR
ROTAR = JMP L5
;
;
;************************ ROTATION AV ***********************************
;
L4
ROTAV = SET ETAP01
= SET O-FRTOUR
= TG2 20 100
T20 AND ETAP01 = SET O-RTOURAV
= SET ETAP02
= RES ETAP01
ETAP02 AND (CPS R50 EQ R33)
= RES O-FRTOUR
= RES O-RTOURAV
ETAP02 AND NOT O-RTOURAV AND I-TOUEC
= RES ETAP02
= RES M-ROUT
END
;
;*********************** ROTATION AR ************************************
;
L5
ROTAR = SET ETAP03
= SET O-FRTOUR
= TG2 20 100
T20 AND ETAP03 = SET O-RTOURAV
= SET ETAP04
= RES ETAP03
ETAP04 AND (CPS R50 EQ R33)
= RES O-FRTOUR
= RES O-RTOURAV
ETAP04 AND NOT O-RTOURAV AND I-TOUEC
= RES ETAP04
= RES M-ROUT
END
;
;
;
;********************* DECODAGE DES FONCTIONS M *************************
;
L10
;
CPS MBCD* EQ $3 = SET M03 = RES M04 = RES M05 = RES M19
CPS MBCD* EQ $4 = RES M03 = SET M04 = RES M05 = RES M19
CPS MBCD* EQ $5 = RES M03 = RES M04 = SET M05 = RES M19
DFU MSTROBE AND CPS MBCD* EQ $8 = SET M08
DFU MSTROBE AND CPS MBCD* EQ $9 = RES M08
CPS MBCD* EQ $19 = SET M19 = RES M03 = RES M04 = RES M05
CPS MBCD* EQ $30 = RES M08
= RES M03 = RES M04 = RES M19
= SET M05
CPS MBCD* EQ $41 = SET M41 = RES GEAR2 = RES GEAR3 = RES GEAR4
CPS MBCD* EQ $42 = SET M42 = RES GEAR1 = RES GEAR3 = RES GEAR4
CPS MBCD* EQ $43 = SET M43 = RES GEAR1 = RES GEAR2 = RES GEAR4
CPS MBCD* EQ $44 = SET M44 = RES GEAR1 = RES GEAR2 = RES GEAR3
;
;
L11
;
CPS SBCD LE $45 OR (CPS SBCD GT $52 AND CPS SBCD LE $54 ) OR (CPS SBCD GT $62 AND CPS SBCD LE $65 ) OR (CPS SBCD GT $72 AND CPS SBCD LE $75 )= SET M100 = RES M101= RES M102= RES M103
(CPS SBCD GT $45 AND CPS SBCD LE $47 ) OR ( CPS SBCD GT $54 AND CPS SBCD LE $57 ) OR ( CPS SBCD GT $65 AND CPS SBCD LE $67 ) OR ( CPS SBCD GT $75 AND CPS SBCD LE $77 ) = SET M101= RES M100= RES M102= RES M103
(CPS SBCD GT $47 AND CPS SBCD LE $50 ) OR ( CPS SBCD GT $57 AND CPS SBCD LE $60 ) OR ( CPS SBCD GT $67 AND CPS SBCD LE $70 ) OR ( CPS SBCD GT $77 AND CPS SBCD LE $80 ) = SET M102= RES M100= RES M101= RES M103
(CPS SBCD GT $50 AND CPS SBCD LE $52 ) OR ( CPS SBCD GT $60 AND CPS SBCD LE $62 ) OR ( CPS SBCD GT $70 AND CPS SBCD LE $73 ) OR ( CPS SBCD GT $80 AND CPS SBCD LE $84 ) = SET M103= RES M100= RES M101= RES M102
;
END
;
;*********************************************************************
;