You are on page 1of 5

!

(* démarrage système *)
IF %S1 OR NOT %M0
THEN %MW46:=40;%MW47:=300;%MW48:=0;%MW49:=3;%MD78:=0;%M21:=FALSE;
%Q2.0:12:=0;
%MW50:=100;%MW51:=5;%MW45:=0;%MW185:=0;%MF306:=1.0;%MW327:=800;%MW328:=0;
%MW329:=40;%MW41:=20;%MW320:=0;%MF336:=4.0;%MW309:=20;
%M1:=FALSE;%MW330:=0;%MW301:=0;%MW40:=0;
%M33:=FALSE;%M37:=FALSE;%M39:=FALSE;%M42:=FALSE;
%M30:=FALSE;%M33:=FALSE;%M34:=FALSE;%M37:=FALSE;%M39:=FALSE;%M40:=FALSE;
%M42:=FALSE;
%M36:=FALSE;%MW20:=0;%MW103:=1;
%MW40:=0;%M0:=TRUE;%M50:=FALSE;
END_IF;
!
IF %MW102=1 AND %MW101=512
THEN %MW103:=1;
END_IF;
!
(* lancement procédure d'etalonnage système de mesure de poids *)
IF %MW102=2 AND %MW101=8 THEN %M50:=TRUE;END_IF;
!
IF %M50 AND(%MW102=13 OR %MW102=14 OR %MW102=15 OR %MW102=16 OR %MW102=17)
AND %MW101=512
THEN %MW103:=1;%M50:=FALSE;
END_IF;
!
%M55:=%M50;
!
(* lancement procédure d'etalonnage système de mesure de distance *)
IF %MW102=3 AND %MW101=8 THEN %M60:=TRUE;END_IF;
!
IF %M60 AND(%MW102=18 OR %MW102=19 OR %MW102=20 OR %MW102=21)
AND %MW101=512
THEN %MW103:=1;%M60:=FALSE;
END_IF;
!
%M65:=%M60;
!
%MW104:=0;
!
(************************************ mesure de poids
*****************************************)
%MW9:=%IW3.0;%MF556:=INT_TO_REAL(%MW9); (* mesure *)

IF %MW9<%MW481
THEN %MF530:=%MF510; (* coef directeur *)
%MF558:=%MF556-%MF516;
%MF560:=%MF558/(%MF530); (* calcul 1 *)
%MF562:=%MF560; (* calcul 2 *)
%MF584:=%MF562;
END_IF;
IF %MW9>=%MW481 AND %MW9<%MW482
THEN %MF530:=%MF512;
%MF568:=(%MF556-%MF492);
%MF570:=(%MF568/%MF530); (* calcul 1 *)
%MF572:=%MF484+%MF570; (* calcul 2 *)
%MF584:=%MF572;
END_IF;
IF %MW9>=%MW482
THEN %MF530:=%MF514;
%MF578:=(%MF556-%MF494);
%MF580:=%MF578/%MF530; (* calcul 1 *)
%MF582:=%MF486+%MF580; (* calcul 2 *)
%MF584:=%MF582;
END_IF;

%MF164:=INT_TO_REAL(%MW9);
!
(* relation *)
%MF166:=%MF482;
%MW86:=REAL_TO_INT(%MF584);
IF %MW86<0 THEN %MW86:=0;END_IF;
!
IF %MW86<20 THEN %MW10:=0;END_IF;
IF %MW86>20 AND %MW86<60 THEN %MW10:=1;END_IF;
IF %MW86>60 AND %MW86<130 THEN %MW10:=2;END_IF;
IF %MW86>130 THEN %MW10:=3;END_IF;
!
(* etalonnage jauge *)
%M6:=%MW102=10;
IF RE %M6 THEN %MW70:X2:=FALSE;END_IF;
IF %M6 AND NOT %MW70:X2 THEN %MW104:X6:=TRUE;END_IF;
%M7:=%MW100:X6 AND %MW102=10;
IF RE %M7 OR %M13 THEN %MW6:=%IW3.0;%MF516:=INT_TO_REAL(%MW6);%MW70:X2:=TRUE;END_IF;
!
%MF210:=INT_TO_REAL(%MW9);%MF208:=%MF210/1000.0;
!
(************************** mesure de distance sans contact ***********************************)
!
%MW11:=%IW3.1;(* mesure signal *)
!
%MF160:=INT_TO_REAL(%MW11);
IF %MW11<%MW606
THEN %MF630:=%MF160-%MF616;
%MF632:=%MF600+(%MF630/%MF622);
%MF90:=%MF632;
END_IF;

IF %MW11>=%MW606
THEN %MF634:=%MF160-%MF608;
%MF636:=%MF602+(%MF634/%MF628);
%MF90:=%MF636;
END_IF;
!
(* type de pièce *)
%MW12:=3;
IF %MF90<32.0 THEN %MF90:=100.0;END_IF;
IF %MF90>32.0 AND %MF90<37.5 THEN %MW12:=0;END_IF;
IF %MF90>=37.5 AND %MF90<42.5 THEN %MW12:=1;END_IF;
IF %MF90>42.5 AND %MF90<47.5 THEN %MW12:=2;END_IF;
!
(************************** mesure de distance avec contact ***********************************)
IF %MW102=4 AND NOT %Q2.4 THEN %MW104:=16#0001;END_IF;
IF %MW102=4 AND %Q2.4 THEN %MW104:=16#0002;END_IF;
(* on a 440mV / mm *)
(* faire l'étalonnage sur une pièce avec rainure de 30 mm *)
%MW13:=%IW3.2;(* affichage de la mesure *)
IF %Q2.4 THEN %MF162:=INT_TO_REAL(%MW13-%MW8);ELSE %MF162:=0.0;END_IF;
IF %Q2.4 THEN %MF82:=30.0+(%MF162*(4.0/2000.0));ELSE %MF82:=0.0;END_IF;
!
IF %MF82<29.0 THEN %MW14:=0;END_IF;
IF %MF82<31.0 AND %MF82>29.0 THEN %MW14:=1;END_IF;
IF %MF82>31.0 AND %MF82<33.0 THEN %MW14:=2;END_IF;
IF %MF82>33.0 THEN %MW14:=3;END_IF;
!
%MF218:=INT_TO_REAL(%MW13);%MF216:=%MF218/1000.0;
!
(* commande par la page html *)
%M41:=%M21;%MN3.P:=5;
IF RE %M41 THEN START %MN3;END_IF;
!
(* étalonnage capteur potentiometrique *)
%M4:=%MW102=9;
IF RE %M4 THEN %MW70:X1:=FALSE;END_IF;
IF %M4 AND NOT %MW70:X1 THEN %MW104:X6:=TRUE;END_IF;
IF %MW100:X6 AND %MW102=9 THEN %M5:=TRUE;END_IF;
%M23:=%M22;
IF RE %M5 OR RE %M23 THEN START %MN0;START %MN1;END_IF;
IF %MN1.R AND NOT %MN0.R THEN %MW8:=%IW3.2;%MW70:X1:=TRUE;%M5:=FALSE;%M23:=FALSE;END_IF;
!
(* arrêt automatique de l'electro aimant *)
%M9:=%MN2.R;
IF FE %M9 THEN RESET %M21;END_IF;
!
(********************************** régulateur vitesse
********************************************)
%M42:=%M42;
IF RE %M42
THEN %M40:=%MW330:X0;
END_IF;
IF %M42
THEN %MW330:X0:=%M40;
END_IF;
IF NOT %M42
THEN %M40:=%MW330:X0;
END_IF;
IF %MW102=5 OR %M42 OR %MD78=7
THEN SR2;
END_IF;
!
(********************************** régulateur PID
********************************************)
%M33:=%M33;
IF RE %M33
THEN %M30:=%MW40:X0;
END_IF;
IF %M33
THEN %MW40:X0:=%M30;
END_IF;
IF NOT %M33
THEN %M30:=%MW40:X0;
END_IF;
IF %MW102=11 OR %M33 OR %MD78=3
THEN SR3;
END_IF;
!
(********************************** régulateur TOR
********************************************)
%M37:=%M37; (* pour test front *)
IF RE %M37 (* bit auto/manu *)
THEN %M34:=%MW301:X1;
%M36:=%MW301:X2;
END_IF;

IF %M37
THEN %MW301:X1:=%M34;
%MW301:X2:=%M36;
END_IF;
IF NOT %M37
THEN %M34:=%MW301:X1;
%M36:=%MW301:X2;
END_IF;
IF %MW102=12 OR %M37 OR %MD78=9 (* SR1 RÉGULATEUR TOR *)
THEN SR1;
ELSE %M29:=FALSE;
END_IF;
!
(******************************* mesure température
*******************************************)
IF %MW102=6 OR %M39 OR %MD78=8
THEN %MW18:=%IW3.4;%MF220:=INT_TO_REAL(%MW18);%MF224:=%MF220/1000.0;
%MF234:=%MF224*10.0;
%MW19:=%MW18;
%QW4.1:=%MW20*100;
%MF226:=INT_TO_REAL(%QW4.1);%MF228:=%MF226/1000.0;
%MF230:=%MF228+0.7;
END_IF;
IF %MF228<=0.0 THEN %MF230:=0.0;END_IF;
!
(* arrêt commande chauffage *)
IF %MW102<>11 AND NOT %M33 AND %MD78<>3 AND %MW102<>12 AND NOT %M37 AND %MD78<>9
AND %MW102<>6 AND NOT %M39 AND %MD78<>8
THEN %M1:=FALSE;%MW111:=0;%MW45:=0;%QW4.1:=0;
END_IF;
!
(* arrêt moteur *)
IF %MW102<>5 AND NOT %M42 AND %MD78<>7
THEN %QW4.0:=0;
END_IF;
!
(* variables pour prodyn *)
%MF206:=INT_TO_REAL(%MW9);%MF208:=%MF206/1000.0;
!
%M10:=%MW10=1;
%M11:=%MW10=2;%M12:=%MW10=3;
!
%M14:=%MW12=0;%M15:=%MW12=1;%M16:=%MW12=2;
!
%MF210:=INT_TO_REAL(%MW11);%MF212:=%MF210/1000.0;
!
%M18:=%MW14=1 AND %Q2.4;%M19:=%MW14=2 AND %Q2.4;%M20:=%MW14=3 AND %Q2.4;
!
%MF214:=INT_TO_REAL(%MW13);%MF216:=%MF214/1000.0;
%MW15:=%IW3.3;
!
%M24:=(%MW15>100 OR %MW15<-100)AND %S6;
%M25:=(%MW15>100 OR %MW15<-100)AND NOT %S6;
!
%M26:=%MW15>100 OR %MW15<-100;
!
%MF218:=%MF30/1000.0;
!
%M28:=%MW15>=0;%M27:=%MW15<0;
!
%MF220:=(%MF30/9.0)*3.0/100.0;
!
%MF222:=INT_TO_REAL(%MW18);%MF224:=%MF222/1000.0;
!
%MF226:=INT_TO_REAL(%QW4.1);%MF228:=%MF226/1000.0;
!
%MF232:=INT_TO_REAL(%MW18);%MF234:=%MF232/100.0;

You might also like