[?]: TSX micro Drive Festo y pcmia

другие контроллеры
mario_ingen
Posts: 26
Joined: Tue Apr 13, 2010 11:21 pm

[?]: TSX micro Drive Festo y pcmia

Post by mario_ingen »

Hi I have a problem to see if I can shed light.:
I have a Telemecanique TSX Micro plc with a PCMIA card that communicates with a servo servo festo.
Al I have attached an encoder for position.
And autumn is the encoder inputs plc Modulod digitales.
El PCMIA servo connects to the microphone.
you enter the value for a console to the microphone to tell the nylon cutting distance (approx 365mm).

It works for 2 years without problems ,.... but two days ago started to cut out as such. 367 another 370, etc. .. there is a cutoff point and can not find the problem.
We measure the scope encoder encoder with 3.8 volt long 5volt ok but come to the inputs of plc.Puede be the servo control board? or PCMIA?

I gain a part of the tsx micro to see if I get a hand to correguir.
From now through (tyou)
Fast task positions

Code: Select all

!
(*deteccion de taco y corte*)

%M0:=RE %I1.0;
%M1:=RE %I1.1;

(*Ini_taco:=Aux_taco;*)
(*Ini_corte:=Aux_corte;*)

IF %M0 THEN INC %MW27;
END_IF;
IF %MW27>=%MW26 THEN
	SET %M2;
	%MW27:=0;
ELSE RESET %M2;
END_IF;

IF %M1 THEN INC %MW36;
END_IF;
IF %MW36>=%MW35 THEN
	SET %M3;
	%MW36:=0;
ELSE RESET %M3;
END_IF;

IF %M0 THEN INC %MW60;END_IF;
IF %M1 THEN INC %MW61;END_IF;
(*simulacion de movimiento de corte*)

IF %M5 THEN
	IF %MW0>%MW16 OR %MW4=0 THEN
		SET %M6;
	ELSE RESET %M6;
	END_IF;	
END_IF;

!
(*medida primaria de velocidad de corte*)
IF %MW4>0 THEN (*corte en marcha*)
	%MW0:=%MW0+2;(*incrementa posicion*)
	IF %M3 OR %M6 THEN
		%MW2:=%MW1;(*medida periodo de corte*)
		%MW1:=%MW0;
		%MW0:=0;
	END_IF;
ELSE (*corte parado*)
	%MW2:=0;
	%MW1:=0;
	%MW0:=0;
	IF %M3 OR %M6 THEN
		%MW4:=1;(*indica corte en marcha*)
	END_IF;
END_IF;

!
(*avance de taco*)
%MW22:=%MW22+2;

(*medidas posicion y velocidad de taco*)

IF %M2 THEN
	%MW3:=%MW0;(*medida posicion de taco respecto al corte*)
	SET %M4;
	%MW21:=%MW22;(*medida periodo de taco*)
	%MW22:=0;
END_IF;