(*SOFTCONTROL: VERSION:2.04.01*) PLC_CONFIG CPU_TYPE := A1S VERSION := 1.00 MEMORY_PARAMETER MAIN_SEQUENCE := 6 FILE_REGISTER := 0 COMMENT_SPACE := 0 MAIN_MICRO := 0 SAMPLING_TRACE := 0 STATUS_LATCH_DATA_MEMORY := 0 STATUS_LATCH_FILE_REGISTER := 0 END_MEMORY_PARAMETER TC_CONFIGURATION WATCHDOG_TIMER := 200 INTERRUPT_COUNTER_HEAD := -1 TIMER_100MS := 0 TIMER_10MS := 200 TIMER_RETENTIVE := -1 END_TC_CONFIGURATION LATCH_RANGE LATCH_RELAY_LOWER := -1 LATCH_RELAY_UPPER := -1 LINK_RELAY_LOWER := -1 LINK_RELAY_UPPER := -1 TIMER_100MS_LOWER := -1 TIMER_100MS_UPPER := -1 TIMER_10MS_LOWER := -1 TIMER_10MS_UPPER := -1 COUNTER_LOWER := -1 COUNTER_UPPER := -1 DATA_REGISTER_LOWER := -1 DATA_REGISTER_UPPER := -1 LINK_REGISTER_LOWER := -1 LINK_REGISTER_UPPER := -1 END_LATCH_RANGE IO_CONFIGURATION END_IO_CONFIGURATION PLC_SETUP CONTROL_INPUT_RUN := -1 CONTROL_INPUT_PAUSE := -1 FUSE_FAILURE_BEHAVIOUR := 1 CALCULATION_ERROR_BEHAVIOUR := 1 IO_MODULE_ERROR_BEHAVIOUR := 0 SPECIAL_MODULE_ERROR_BEHAVIOUR := 0 SYSTEM_START_BEHAVIOUR := 0 END_PLC_SETUP SPECIAL_PARAMETER END_SPECIAL_PARAMETER SYSTEM_VARIABLES WORD_TYPE := 0 WORD_LOWER := 511 WORD_UPPER := 1023 BIT_TYPE := 0 BIT_LOWER := 1024 BIT_UPPER := 2047 TIMER_LOWER_100MS := 100 TIMER_UPPER_100MS := 199 TIMER_LOWER_10MS := 220 TIMER_UPPER_10MS := 255 TIMER_LOWER_RETENTIVE := -1 TIMER_UPPER_RETENTIVE := -1 COUNTER_LOWER := 100 COUNTER_UPPER := 255 LABEL_LOWER := 100 LABEL_UPPER := 254 END_SYSTEM_VARIABLES LINK_SETTINGS TYPE_OF_NETWORK := 255 LINK_RELAY_MASTER_HEAD_NO := -1 LINK_RELAY_MASTER_NUMBER := 0 LINK_REGISTER_MASTER_HEAD_NO := -1 LINK_REGISTER_MASTER_NUMBER := 0 MASTER_TO_SLAVE_RELAY_LOWER := -1 MASTER_TO_SLAVE_RELAY_UPPER := -1 MASTER_TO_SLAVE_REGISTER_LOWER := -1 MASTER_TO_SLAVE_REGISTER_UPPER := -1 LINK_WATCHDOG_TIME := 2000 LINK2_REGISTER_MASTER_HEAD_NO := -1 LINK2_REGISTER_MASTER_NUMBER := -1 LINK2_RELAY_MASTER_HEAD_NO := -1 LINK2_RELAY_MASTER_NUMBER := -1 LINK_COUNT := 0 END_LINK_SETTINGS PROJECT_OPTIONS RD_OPTIONS ENABLE_RESET_DEVICES := 0 ENABLE_RESET_LATCHED_DEVICES := 0 ENABLE_D_DEVICES := 0 ENABLE_M_DEVICES := 0 ENABLE_T_DEVICES := 0 ENABLE_C_DEVICES := 0 ENABLE_S_DEVICES := 0 ENABLE_ST_DEVICES := 0 END_RD_OPTIONS END_PROJECT_OPTIONS END_PLC_CONFIG PROGRAM Alimentacao VAR_EXTERNAL Q1: BOOL:=FALSE; (*Saída para Accionar o motor dos tapetes*) Q4: BOOL:=FALSE; (*Saida para a electrovalv. do cil. de alimentação*) Q5: BOOL:=FALSE; (*Saida usada como memória Interna*) I1: BOOL:=FALSE; (*Entrada associada as condições do sistema*) I2: BOOL:=FALSE; (*Ent. de BP para desligar os discos (NF)*) I6: BOOL:=FALSE; (*Ent. do BP da alimentação*) I7: BOOL:=FALSE; (*Ent. do relé do sensor de presença de peça*) I8: BOOL:=FALSE; (*Ent. do sensor de posição do cilindro*) I9: BOOL:=FALSE; (*Ent. do sensor de posição do cilindro*) END_VAR 'LD' BODY WORKSPACE NETWORK_LIST_TYPE := NWTYPELD ; ACTIVE_NETWORK := 0 ; END_WORKSPACE NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,I7,3,2,5,4,N); B(B_CONTACT,,I8,8,2,10,4,); B(B_CONTACT,,Q1,13,2,15,4,); B(B_COIL,,M3,22,2,24,4,S); B(B_COMMENT,,I7-BP da alimentação (Preto) I8 - cil. alimentação recolhido Q1-Motor do Tapete,26,1,46,4,); L(1,0,1,5); L(15,3,22,3); L(10,3,13,3); L(5,3,8,3); L(1,3,3,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_CONTACT,,I9,3,1,5,3,); B(B_CONTACT,,I1,3,3,5,5,N); B(B_CONTACT,,I2,3,5,5,7,N); B(B_COIL,,M3,22,1,24,3,E); B(B_COMMENT,,I9- cilindro na posição final I1- Condições de Segurança (NF) I2- BP para desligar discos (NF) Estas duas primeiras linhas condicionam o estado da alimentação(M3),26,1,46,6,); L(1,0,1,7); L(1,2,3,2); L(1,4,3,4); L(1,6,3,6); L(5,6,9,6); L(5,4,9,4); L(9,2,9,4); L(9,4,9,6); L(5,2,9,2); L(9,2,22,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,I6,3,1,5,3,); B(B_CONTACT,,Q1,8,1,10,3,); B(B_CONTACT,,I1,13,1,15,3,); B(B_COIL,,Q4,22,1,24,3,); B(B_CONTACT,,M3,3,3,5,5,); B(B_CONTACT,,Q5,8,3,10,5,); B(B_COMMENT,,I6- BP da alimentação (Preto) Q1 - Motor do Tapete Q5 - Mem interna Aliment. Activa (Saida) Q4 - Saida para electrovalv. do cil. de alimentação,26,1,46,5,); L(1,2,3,2); L(5,2,8,2); L(10,2,13,2); L(15,2,22,2); L(1,4,3,4); L(5,4,8,4); L(17,2,17,4); L(10,4,17,4); L(1,0,1,6); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 8 ; NETWORK_BODY B(B_CONTACT,,TS3,3,1,5,3,); B(B_CONTACT,,I1,3,3,5,5,N); B(B_CONTACT,,I2,3,5,5,7,N); B(B_COIL,,Q5,22,1,24,3,E); B(B_COMMENT,,Verificação das condições (M5) que permitem a continuidade da alim. Q5 TS3- falta peça por mais de 5 min. I1- Condições de Segurança I2- Motor dos Tapetes,26,1,46,7,); L(1,2,3,2); L(1,4,3,4); L(1,6,3,6); L(10,2,10,4); L(5,4,10,4); L(10,4,10,6); L(5,6,10,6); L(10,2,22,2); L(1,0,1,8); L(5,2,10,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,Q1,8,2,10,4,); B(B_COIL,,M6,22,2,24,4,S); B(B_CONTACT,,I6,3,2,5,4,); L(1,0,1,5); L(1,3,3,3); L(10,3,22,3); L(5,3,8,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 12 ; NETWORK_BODY B(B_CONTACT,,Q5,14,2,16,4,N); B(B_COIL,,Q5,22,2,24,4,S); B(B_CONTACT,,Q5,14,7,16,9,); B(B_COIL,,Q5,22,7,24,9,E); B(B_COIL,,M6,22,4,24,6,E); B(B_COIL,,M6,22,9,24,11,E); B(B_COMMENT,,O BP da alimentação (I6) liga e desliga a saida Q5 que indica o estado da alimentação,27,2,47,5,); B(B_CONTACT,,M6,3,2,5,4,); L(8,3,11,3); L(9,3,9,8); L(21,3,21,5); L(21,5,22,5); L(21,8,21,10); L(21,10,22,10); L(1,0,1,12); L(8,3,9,3); L(16,3,22,3); L(16,8,22,8); L(9,3,14,3); L(1,3,3,3); L(5,3,8,3); L(9,8,14,8); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,I7,3,1,5,3,); B(B_CONTACT,,Q5,8,1,10,3,); B(B_VARIN,,TempoC3,16,2,18,4,); B(B_VARIN,,3000,16,3,18,5,); B(B_F,TIMER_M,,18,0,25,5,); B(B_COMMENT,,I7 - Sensor que detecta a presença de peça. Este temporizador permite detectar a falta de peças na alimentação por mais de cinco minutos.,26,1,46,5,); L(1,0,1,6); L(10,2,18,2); L(5,2,8,2); L(1,2,3,2); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM PROGRAM MAIN_PRG_LD VAR_EXTERNAL Q1: BOOL:=FALSE; Q2: BOOL:=FALSE; Q3: BOOL:=FALSE; Q4: BOOL:=FALSE; Q5: BOOL:=FALSE; Q6: BOOL; Q7: BOOL; Q8: BOOL:=FALSE; I1: BOOL:=FALSE; I2: BOOL:=FALSE; I3: BOOL:=FALSE; I4: BOOL:=FALSE; I5: BOOL:=FALSE; I6: BOOL:=FALSE; I7: BOOL:=FALSE; I8: BOOL:=FALSE; I9: BOOL:=FALSE; I10: BOOL; I11: BOOL; I12: BOOL; TempoC1: BOOL:=FALSE; Saltar: BOOL:=FALSE; TempoC2: BOOL:=FALSE; TempoC3: BOOL:=FALSE; END_VAR 'LD' BODY WORKSPACE NETWORK_LIST_TYPE := NWTYPELD ; ACTIVE_NETWORK := 0 ; END_WORKSPACE NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,Q8,4,1,6,3,); B(B_VARIN,,TempoC1,18,2,20,4,); B(B_VARIN,,300,18,3,20,5,); B(B_F,TIMER_M,,20,0,27,5,); B(B_COMMENT,,Temporizador que permite garantir o retardamento do inicio de transporte de varetas para o corte face à rotação dos discos (Saida Q8 para o inverter),28,1,52,5,); L(1,0,1,6); L(6,2,20,2); L(1,2,4,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,Q8,4,1,6,3,); B(B_CONTACT,,TS1,12,1,14,3,); B(B_COIL,,M1,22,1,24,3,S); B(B_COMMENT,,Activação correspondente ao temporizador,28,1,52,4,); L(1,0,1,5); L(6,2,12,2); L(1,2,4,2); L(14,2,22,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,I5,3,1,5,3,); B(B_CONTACT,,Q1,3,3,5,5,); B(B_CONTACT,,I4,8,1,10,3,); B(B_CONTACT,,I1,13,1,15,3,); B(B_CONTACT,,M1,18,1,20,3,); B(B_COIL,,Q1,22,1,24,3,); B(B_COMMENT,,Activação da saída referente ao motor dos tapetes~ através do BP NA I5~ com verificação das condições de segurança. Saida realimentada que pode ser desligada através de I4 NF.,28,1,52,4,); L(1,0,1,5); L(20,2,22,2); L(15,2,18,2); L(10,2,13,2); L(5,2,8,2); L(1,2,3,2); L(7,2,7,4); L(5,4,7,4); L(1,4,3,4); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,Q1,3,2,5,4,); B(B_F,PLF_M,,12,1,18,5,); B(B_COIL,,Saltar,22,3,24,5,); B(B_COMMENT,,Activação de uma variável Saltar~ associado ao movimento alternativo das escovas. O mvimento destas escovas é iniciado simltanêamente à iniciação do motor dos tapetes.,28,1,52,4,); L(5,3,10,3); L(1,3,3,3); L(1,0,1,5); L(10,3,12,3); L(18,4,22,4); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 8 ; NETWORK_BODY B(B_CONTACT,,Saltar,3,3,5,5,); B(B_F,PLF_M,,7,2,13,6,); B(B_F,TIMER_M,,19,3,26,8,); B(B_VARIN,,20,17,6,19,8,); B(B_VARIN,,TempoC2,17,5,19,7,); B(B_COMMENT,,O movimento alternativo das escovas é conseguido graças a um cilindro de duas posições.É necessário um sinal pulsado que indica a este cilindro para avançar e recuar. A cadência (período) deste sinal é determinada por este temporizador.,28,1,52,7,); L(1,0,1,8); L(1,4,3,4); L(5,4,7,4); L(13,5,19,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,TS2,3,2,5,4,); B(B_COIL,,M2,22,2,24,4,S); B(B_COMMENT,,Associação de uma memória interna à saída do temporizador anterior.,28,1,52,4,); L(1,3,3,3); L(5,3,22,3); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_CONTACT,,Q1,3,1,5,3,); B(B_COIL,,Q2,22,1,24,3,S); B(B_COIL,,Saltar,22,3,24,5,); B(B_CONTACT,,M2,13,1,15,3,); B(B_CONTACT,,Q2,8,1,10,3,N); B(B_COIL,,M2,22,5,24,7,E); B(B_COMMENT,,Activação da saída que vai comandar a electoválvula~ que leva o cilindro a efectuar o movimento de avanço atrás referido. É também verificada a condição de funcionamento Q1~ e são (des)activadas as variáveis necessárias ao funcionamento em contínuo.,28,1,52,6,); L(1,2,3,2); L(19,2,19,4); L(19,4,22,4); L(19,2,22,2); L(1,0,1,7); L(15,2,19,2); L(5,2,8,2); L(10,2,13,2); L(19,4,19,6); L(19,6,22,6); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_CONTACT,,Q1,3,1,5,3,); B(B_COIL,,Q2,22,1,24,3,E); B(B_COIL,,Saltar,22,3,24,5,); B(B_CONTACT,,M2,13,1,15,3,); B(B_CONTACT,,Q2,8,1,10,3,); B(B_COIL,,M2,22,5,24,7,E); B(B_COMMENT,,Activação da saída que vai comandar a electoválvula~ que leva o cilindro a efectuar o movimento de de atrás referido. É também verificada a condição de funcionamento Q1~ e são (des)activadas as variáveis necessárias ao funcionamento em contínuo.,28,1,52,6,); L(1,2,3,2); L(19,2,19,4); L(19,4,22,4); L(19,2,22,2); L(1,0,1,7); L(15,2,19,2); L(5,2,8,2); L(10,2,13,2); L(19,4,19,6); L(19,6,22,6); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,Q8,3,1,5,3,); B(B_COIL,,Q3,22,1,24,3,); B(B_COMMENT,,Activação (abertra) da electróválvula que controla o bico de sopor que permite a evacuação de algum do pó produzido durante o corte,28,1,52,4,); L(1,0,1,5); L(5,2,22,2); L(1,2,3,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,I3,3,1,5,3,); B(B_CONTACT,,I1,8,1,10,3,); B(B_CONTACT,,I2,14,1,16,3,); B(B_COIL,,Q8,22,1,24,3,); B(B_CONTACT,,Q8,3,4,5,6,); B(B_COMMENT,,Activação de um sinal com destino ao inverter~ a partir de um BP NA I3~ e repectiva realimentação~ com interrupção a partir do BP I2~ e com verificação das condições de segurança do sistema.,28,1,52,5,); L(1,0,1,6); L(16,2,22,2); L(10,2,14,2); L(5,2,8,2); L(1,2,3,2); L(7,2,7,5); L(5,5,7,5); L(1,5,3,5); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM CONFIGURATION scConfiguration RESOURCE scResource ON scResourceType VAR_GLOBAL Q1 AT %QX1: BOOL:=FALSE; (*Saída para Accionar o motor dos tapetes*) Q2 AT %QX2: BOOL:=FALSE; (*Saida para a electrovalv. da Escova*) Q3 AT %QX3: BOOL:=FALSE; (*Saida para a electrovav. do bico de sopro*) Q4 AT %QX4: BOOL:=FALSE; (*Saida para a electrovalv. do cil. de alimentação*) Q5 AT %QX5: BOOL:=FALSE; (*Saida usada como memória Interna*) Q8 AT %QX8: BOOL:=FALSE; (*Saida para o Inverter iniciar o funcionamento.*) I1 AT %IX1: BOOL:=FALSE; (*Entrada associada as condições do sistema*) I2 AT %IX2: BOOL:=FALSE; (*Ent. de BP para desligar os discos (NF)*) I3 AT %IX3: BOOL:=FALSE; (*Ent. de BP ligar os discos (NA)*) I4 AT %IX4: BOOL:=FALSE; (*Ent. de BP desligar o tapete (NF)*) I5 AT %IX5: BOOL:=FALSE; (*Ent. de BP ligar o tapete (NA)*) I6 AT %IX6: BOOL:=FALSE; (*Ent. do BP da alimentação*) I7 AT %IX7: BOOL:=FALSE; (*Ent. do relé do sensor de presença de peça*) I8 AT %IX8: BOOL:=FALSE; (*Ent. do sensor de posição do cilindro*) I9 AT %IX9: BOOL:=FALSE; (*Ent. do sensor de posição do cilindro*) Saltar AT %MX0.10: BOOL:=FALSE; TempoC1 AT %MX5.1: BOOL:=FALSE; TempoC2 AT %MX5.2: BOOL:=FALSE; TempoC3 AT %MX5.3: BOOL:=FALSE; TempoN1 AT %MW3.1: INT:=0; TempoN2 AT %MW3.2: INT:=0; TempoN3 AT %MW3.3: INT:=0; TempoS1 AT %MX3.1: BOOL:=FALSE; TempoS2 AT %MX3.2: BOOL:=FALSE; TempoS3 AT %MX3.3: BOOL:=FALSE; END_VAR TASK MAIN_LD(SINGLE:=TRUE, INTERVAL:=0, PRIORITY:=31) PROGRAM MAIN_PRG_LD WITH MAIN_LD: scProgramType END_RESOURCE END_CONFIGURATION