(*SOFTCONTROL: VERSION:2.04.01*) PLC_CONFIG CPU_TYPE := FX2N / FX2NC VERSION := 1.00 MEMORY_PARAMETER MAIN_SEQUENCE := 8 FILE_REGISTER := 0 COMMENT_SPACE := 0 END_MEMORY_PARAMETER LATCH_RANGE LATCH_RELAY_LOWER := 500 LATCH_RELAY_UPPER := 1023 LINK_RELAY_LOWER := 500 LINK_RELAY_UPPER := 999 COUNTER_LOWER := 100 COUNTER_UPPER := 199 DATA_REGISTER_LOWER := 220 DATA_REGISTER_UPPER := 255 LINK_REGISTER_LOWER := 200 LINK_REGISTER_UPPER := 511 END_LATCH_RANGE SYSTEM_VARIABLES WORD_TYPE := 0 WORD_LOWER := 400 WORD_UPPER := 999 BIT_TYPE := 0 BIT_LOWER := 512 BIT_UPPER := 1535 TIMER_LOWER_100MS := 100 TIMER_UPPER_100MS := 199 TIMER_LOWER_10MS := 220 TIMER_UPPER_10MS := 245 TIMER_LOWER_RETENTIVE := -1 TIMER_UPPER_RETENTIVE := -1 COUNTER_LOWER := 100 COUNTER_UPPER := 199 LABEL_LOWER := 30 LABEL_UPPER := 126 STEP_FLAG_LOWER := 20 STEP_FLAG_UPPER := 899 END_SYSTEM_VARIABLES 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 Seguranca: BOOL:=FALSE; Aliment_BP2: BOOL:=FALSE; Automatico: BOOL:=FALSE; Alimentacao: BOOL:=FALSE; NovaVareta: BOOL:=FALSE; Aliment_YV5: BOOL:=FALSE; Aliment: BOOL:=FALSE; Escova_YV6: BOOL:=FALSE; BicodeSopro_YV7: BOOL:=FALSE; Motores_KA11: BOOL:=FALSE; PresenVaret_BQ10: BOOL:=FALSE; AliAvancado_BQ11: BOOL:=FALSE; AliRecuado_BQ12: BOOL:=FALSE; CiclosFinais: BOOL:=FALSE; Continuo: 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,,PresenVaret_BQ10,4,2,6,4,N); B(B_COIL,,NovaVareta,23,2,25,4,S); B(B_CONTACT,,Automatico,18,2,20,4,); B(B_CONTACT,,AliRecuado_BQ12,12,2,14,4,); B(B_COMMENT,,Quando a última vareta saí de cima do sensor BQ_10 e o cilindro de alimentação está recuado é activada a marca para carregar uma nova vareta.,28,1,47,5,); L(1,3,4,3); L(1,0,1,6); L(20,3,23,3); L(14,3,18,3); L(6,3,12,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,NovaVareta,4,3,6,5,); B(B_CONTACT,,Aliment_BP2,4,1,6,3,); B(B_COIL,,Aliment,23,1,25,3,); B(B_CONTACT,,Alimentacao,11,3,13,5,); B(B_CONTACT,,Continuo,11,1,13,3,); B(B_CONTACT,,Seguranca,17,1,19,3,); B(B_COMMENT,,Aliment (marca associada à saída Aliment_YV5) é activada quando pressionado o botão BP2 ou quando há condições para o tapete receber outra vareta.,28,1,47,5,); L(1,4,4,4); L(1,2,4,2); L(1,0,1,6); L(21,2,21,4); L(14,4,21,4); L(6,4,11,4); L(13,4,14,4); L(6,2,11,2); L(21,2,23,2); L(19,2,21,2); L(13,2,17,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_COIL,,NovaVareta,23,1,25,3,E); B(B_CONTACT,,AliAvancado_BQ11,4,1,6,3,); B(B_CONTACT,,Seguranca,4,3,6,5,N); B(B_COMMENT,,Quando o cilindro de alimentação está na sua posição mais avançada~ ou quando não há segurança é aberta a marca "NovaVareta" que fará avançar o cilindro de alimentação,28,1,48,6,); L(10,2,23,2); L(6,2,10,2); L(1,2,4,2); L(6,4,10,4); L(1,4,4,4); L(1,0,1,7); L(10,2,10,4); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 8 ; NETWORK_BODY B(B_COIL,,Alimentacao,23,1,25,3,E); B(B_CONTACT,,TS4,4,1,6,3,); B(B_CONTACT,,Seguranca,4,3,6,5,N); B(B_CONTACT,,Continuo,4,5,6,7,N); B(B_COMMENT,,Verificação das condições que permitem a continuidade da alimentação TS3- falta peça por mais de 5 min. ,28,1,48,7,); L(10,2,10,4); L(10,2,23,2); L(6,2,10,2); L(1,2,4,2); L(6,4,10,4); L(1,4,4,4); L(10,4,10,6); L(6,6,10,6); L(1,6,4,6); L(1,0,1,8); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_F,ALTP_M,,14,1,21,5,); B(B_COMMENT,,O BP da alimentação (BP2) liga e desliga a marca Alimentacao que indica o estado da alimentação,28,1,48,4,); B(B_COIL,,Alimentacao,23,3,25,5,); B(B_CONTACT,,Continuo,11,2,13,4,); B(B_CONTACT,,Aliment_BP2,4,2,6,4,); L(1,0,1,6); L(21,4,23,4); L(13,3,14,3); L(6,3,11,3); L(1,3,4,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_VARIN,,3000,16,3,18,5,); B(B_F,TIMER_M,,18,0,25,5,); B(B_VARIN,,TC4,16,2,18,4,); B(B_COMMENT,,BQ10 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.,28,1,48,5,); B(B_CONTACT,,Alimentacao,11,1,13,3,); B(B_CONTACT,,PresenVaret_BQ10,4,1,6,3,N); L(1,0,1,6); L(13,2,18,2); L(6,2,11,2); L(1,2,4,2); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM PROGRAM Automatico VAR_EXTERNAL Seguranca: BOOL:=FALSE; Automatico: BOOL:=FALSE; Iniciar_MAC: BOOL:=FALSE; ParcialPecas: DINT:=0; LotePecas: DINT:=0; TapeteMMPS: DINT:=0; CilExtRPH: DINT:=0; AcelDiscos: BOOL:=FALSE; Continuo: BOOL:=FALSE; Fim: BOOL:=FALSE; AcelCilInt: BOOL:=FALSE; CiclosFinais: BOOL:=FALSE; Terminar: BOOL:=FALSE; Escova_YV6: BOOL:=FALSE; Escova: 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 := 8 ; NETWORK_BODY B(B_CONTACT,,AcelDiscos,3,5,5,7,); B(B_CONTACT,,Iniciar_MAC,3,1,5,3,); B(B_F,PLS_M,,6,0,12,4,); B(B_CONTACT,,Automatico,14,2,16,4,); B(B_CONTACT,,AcelCilInt,23,2,25,4,N); B(B_CONTACT,,Seguranca,19,2,21,4,); B(B_COMMENT,,AcelDiscos- Estado em que os discos de Corte e Chanfro aceleram 30 segundos.,35,2,52,4,); B(B_COIL,,AcelDiscos,28,2,30,4,); L(1,6,3,6); L(5,6,12,6); L(1,2,3,2); L(12,3,12,6); L(12,3,14,3); L(5,2,6,2); L(16,3,19,3); L(21,3,23,3); L(1,0,1,8); L(25,3,28,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,AcelDiscos,3,1,5,3,); B(B_VARIN,,TC1,22,2,24,4,); B(B_VARIN,,300,22,3,24,5,); B(B_F,TIMER_M,,24,0,31,5,); L(1,2,3,2); L(5,2,24,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,AcelDiscos,3,1,5,3,); B(B_CONTACT,,AcelCilInt,3,3,5,5,); B(B_CONTACT,,TS1,7,1,9,3,); B(B_COIL,,AcelCilInt,28,1,30,3,); B(B_CONTACT,,Continuo,23,1,25,3,N); B(B_CONTACT,,Automatico,13,1,15,3,); B(B_CONTACT,,Seguranca,18,1,20,3,); B(B_COMMENT,,AcelCilInt- Estado correspondente à acelaração do cilindro interior.,35,1,52,3,); L(1,2,3,2); L(1,4,3,4); L(5,2,7,2); L(5,4,10,4); L(10,2,10,4); L(26,2,28,2); L(25,2,26,2); L(9,2,10,2); L(10,2,13,2); L(20,2,23,2); L(15,2,18,2); L(1,0,1,6); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,AcelCilInt,3,1,5,3,); B(B_F,TIMER_M,,24,0,31,5,); B(B_VARIN,,TC2,22,2,24,4,); B(B_VARIN,,50,22,3,24,5,); L(1,2,3,2); L(5,2,24,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,AcelCilInt,3,1,5,3,); B(B_CONTACT,,Continuo,3,3,5,5,); B(B_CONTACT,,TS2,7,1,9,3,); B(B_CONTACT,,Automatico,13,1,15,3,); B(B_COIL,,Continuo,28,1,30,3,); B(B_CONTACT,,Seguranca,18,1,20,3,); B(B_CONTACT,,CiclosFinais,23,1,25,3,N); B(B_COMMENT,,Contínuo - Estado correspondente ao funcionamento de todo o sistema de transporte.,35,1,52,5,); L(1,2,3,2); L(1,4,3,4); L(1,0,1,6); L(9,2,11,2); L(5,2,7,2); L(5,4,10,4); L(10,2,10,4); L(11,2,13,2); L(15,2,18,2); L(25,2,28,2); L(20,2,23,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 9 ; NETWORK_BODY B(B_VARIN,,ParcialPecas,5,2,7,4,); B(B_F,@GE-2,,14,2,19,6,); B(B_VARIN,,LotePecas,12,4,14,6,); B(B_F,@MUL-2,,7,1,12,5,); B(B_VARIN,,11,5,3,7,5,); B(B_VARIN,,LotePecas,18,5,20,7,); B(B_VARIN,,0,18,6,20,8,); B(B_F,NE_E,,20,3,25,8,); B(B_CONTACT,,Continuo,26,5,28,7,); B(B_COIL,,Terminar,30,5,32,7,); B(B_COMMENT,,Verificação se o número de peças a executar já chegou ao pedido. Esta verificação só é efectuada caso o lote pedido seja diferente de zero.,35,2,52,6,); L(12,4,14,4); L(12,3,12,4); L(1,0,1,9); L(19,4,19,5); L(19,5,20,5); L(25,6,26,6); L(28,6,30,6); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,Continuo,3,1,5,3,); B(B_CONTACT,,CiclosFinais,3,3,5,5,); B(B_CONTACT,,Terminar,7,1,9,3,); B(B_CONTACT,,Automatico,13,1,15,3,); B(B_COIL,,CiclosFinais,28,1,30,3,); B(B_CONTACT,,Seguranca,18,1,20,3,); B(B_COMMENT,,CiclosFinais - Estado correspondente aos ciclos finais que permitem que as ultimas peças sofram a transformação.,35,1,52,5,); B(B_CONTACT,,Fim,23,1,25,3,N); L(1,2,3,2); L(1,4,3,4); L(9,2,11,2); L(5,2,7,2); L(5,4,10,4); L(10,2,10,4); L(11,2,13,2); L(26,2,28,2); L(15,2,18,2); L(20,2,23,2); L(25,2,26,2); L(1,0,1,6); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,CiclosFinais,3,1,5,3,); B(B_F,TIMER_M,,24,0,31,5,); B(B_VARIN,,TC3,22,2,24,4,); B(B_VARIN,,1200,22,3,24,5,); B(B_COMMENT,,Temporizador que corresponde ao tempo que a ultima peça demora a chegar do sensor colocado antes do tapete atá ao fim do chanfro,35,1,52,5,); L(1,2,3,2); L(1,0,1,6); L(5,2,24,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,TS3,3,1,5,3,); B(B_COIL,,Fim,28,1,30,3,); B(B_COIL,,Automatico,28,3,30,5,E); B(B_COMMENT,,Activação da marca fim que termina os ciclos finais~ e saída do modo automático,35,1,52,4,); L(1,0,1,5); L(5,2,28,2); L(1,2,3,2); L(23,2,23,4); L(23,4,28,4); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 8 ; NETWORK_BODY B(B_CONTACT,,Escova_YV6,4,2,6,4,N); B(B_CONTACT,,Automatico,11,2,13,4,); B(B_COMMENT,,Temporizador relativo à espera da escova recolhida,35,3,52,5,); B(B_F,TIMER_M,,24,1,31,6,); B(B_VARIN,,TC5,22,3,24,5,); B(B_VARIN,,20,22,4,24,6,); L(1,3,4,3); L(6,3,11,3); L(1,0,1,8); L(13,3,24,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_CONTACT,,Escova_YV6,4,2,6,4,); B(B_CONTACT,,Automatico,11,2,13,4,); B(B_COMMENT,,Temporizador relativo à espera da escova avançada,35,2,52,4,); B(B_F,TIMER_M,,24,1,31,6,); B(B_VARIN,,TC6,22,3,24,5,); B(B_VARIN,,10,22,4,24,6,); L(1,3,4,3); L(1,0,1,7); L(6,3,11,3); L(13,3,24,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,TS5,4,1,6,3,); B(B_F,PLS_M,,12,0,18,4,); B(B_COIL,,Escova,26,2,28,4,S); L(1,2,4,2); L(6,2,12,2); L(1,0,1,6); L(18,3,26,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,TS6,4,1,6,3,); B(B_F,PLS_M,,12,0,18,4,); B(B_COIL,,Escova,26,2,28,4,E); L(1,2,4,2); L(6,2,12,2); L(1,0,1,6); L(18,3,26,3); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM PROGRAM CartasAnalogicas VAR_EXTERNAL Converter: BOOL:=FALSE; CH1: INT:=0; CH2: INT:=0; CH3: INT:=0; CH4: INT:=0; CH5: INT:=0; 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 := 16 ; NETWORK_BODY B(B_CONTACT,,Converter,3,4,5,6,); B(B_VARIN,,0,12,5,14,7,); B(B_VARIN,,30,12,6,14,8,); B(B_VARIN,,1,12,7,14,9,); B(B_VAROUT,,D0,21,5,23,7,); B(B_F,FROM_M,,14,3,21,9,); B(B_COMMENT,,Leitura da memória da posição 30~ do bloco situado na posição 1 da Rack~ e escrita do valor na variável D0. (n3 =1 significa só ler a posiçao de memória 30),24,3,41,9,); B(B_VARIN,,D0,13,12,15,14,); B(B_VARIN,,K3020,13,13,15,15,); B(B_VAROUT,,M26,21,12,23,14,); B(B_COMMENT,,Comparação do valor lido na memória 30 com o valor de referência K3020 (referente ao bloco especial (FX2N-4DA) e atribuição do resultado a M26,24,10,41,15,); B(B_F,EQ_E-2,,15,10,20,15,); B(B_COMMENT,,Configuração da Carta analógica 4DA,3,1,41,2,); L(1,5,3,5); L(5,5,14,5); L(10,5,10,12); L(20,13,21,13); L(11,12,15,12); L(10,12,11,12); L(1,0,1,16); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 24 ; NETWORK_BODY B(B_CONTACT,,M26,3,2,5,4,); B(B_COMMENT,,Escrita~ na memória da posição 0 do bloco situado na posição 1 da Rack~ do valor 000 em hexadecimal. Da esquerda para a direita os bits indicam o tipo de aquisação de cada um dos quatro canais respectivamente (0->0 a 10V~ 1->4 a 20 mA~ 2 0-20 mA).,24,1,41,7,); B(B_VARIN,,16#0000,15,3,17,5,); B(B_VARIN,,0,15,4,17,6,); B(B_VARIN,,0,15,5,17,7,); B(B_VARIN,,1,15,6,17,8,); B(B_F,TOP_M,,17,1,23,8,); B(B_VARIN,,D1,15,10,17,12,); B(B_VARIN,,0,15,11,17,13,); B(B_VARIN,,1,15,12,17,14,); B(B_VARIN,,4,15,13,17,15,); B(B_F,TOP_M,,17,8,23,15,); B(B_VARIN,,0,11,18,13,20,); B(B_VARIN,,29,11,19,13,21,); B(B_VARIN,,1,11,20,13,22,); B(B_VAROUT,,K4M50,20,18,22,20,); B(B_F,FROM_M,,13,16,20,22,); B(B_COMMENT,,Leitura~ da memória 29 (16 bit) do buffer do bloco especial 1~ e atribuiçao de cada um dos bits a uma memória interna do PLC. Cada um destes bits contém informação sobre os erros ocorridos no bloco especial.,24,16,41,22,); B(B_COMMENT,,Escrita~ nas memórias 1~2~3~4 do buffer do bloco especial 1~ do valor contido na memória D1~D2~D3 e D4 do PLC~ que correspondem aos valores pretendidos para cada canal analógico. ,24,9,41,14,); L(1,3,3,3); L(5,3,7,3); L(7,3,17,3); L(7,10,17,10); L(7,3,7,10); L(1,0,1,24); L(7,10,7,18); L(7,18,13,18); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,M50,3,1,5,3,N); B(B_CONTACT,,M60,10,1,12,3,N); B(B_COIL,,M28,21,1,23,3,); B(B_COMMENT,,Activação de M28 que indica a ausência de erros,24,1,41,4,); L(12,2,21,2); L(5,2,10,2); L(1,2,3,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 51 ; NETWORK_BODY B(B_CONTACT,,Converter,3,4,5,6,); B(B_COMMENT,,O valor a enviar CH1 (inteiro)~ é convertido em binário e escrito bit a bit nas memórias M100-M115. CH1 pode tomar valores entre 0-4000 (12bits) onde cada unidade correponde a 2~5mV caso a saída seja em tensão e a 0~004mA em corrente.,24,3,41,10,); B(B_COMMENT,,Os 8 primeiros bits que representam o valor a enviar (12bits) em binário são lidos nas memórias M100 até M108 e escritos na memória 16 do Buffer. ,24,11,41,15,); B(B_COMMENT,,Memória do Buffer 17-[1~0~0],24,17,41,18,); B(B_COMMENT,,A passagem de 1 a 0 do terceiro bit da memória 17 permite guardar 8 bits de informação~ para que o módulo especial possa receber mais dados (4bits). ,24,19,41,26,); B(B_COMMENT,,Os quatro bits mais significativos que representam valor a enviar em binário~ são lidos a partir das memórias M109 até M112 e escritos na memória 16 do Buffer.,24,31,41,36,); B(B_COMMENT,,Memória 17-[0~1~0],24,37,41,38,); B(B_COMMENT,,A passagem de 1 a 0 do segundo bit da memória 17 permite executar a conversão do canal 2.,24,40,41,43,); B(B_COMMENT,,Memória 17-[0~0~0],24,45,41,46,); B(B_COMMENT,,Memória do Buffer 17-[0~0~0],24,27,41,28,); B(B_COMMENT,,Configuração da Carta Analógica 2DA,3,1,41,2,); B(B_VARIN,,CH5,12,5,14,7,); B(B_VAROUT,,K4M10,20,5,22,7,); B(B_F,MOV_M,,14,3,20,7,); B(B_VARIN,,K2M10,16,10,18,12,); B(B_VARIN,,1,16,11,18,13,); B(B_VARIN,,16,16,12,18,14,); B(B_VARIN,,1,16,13,18,15,); B(B_F,TO_M,,18,8,23,15,); B(B_VARIN,,16#0004,16,17,18,19,); B(B_VARIN,,1,16,18,18,20,); B(B_VARIN,,17,16,19,18,21,); B(B_VARIN,,1,16,20,18,22,); B(B_F,TO_M,,18,15,23,22,); B(B_VARIN,,16#0000,16,24,18,26,); B(B_VARIN,,1,16,25,18,27,); B(B_VARIN,,17,16,26,18,28,); B(B_VARIN,,1,16,27,18,29,); B(B_F,TO_M,,18,22,23,29,); B(B_VARIN,,K2M18,16,31,18,33,); B(B_VARIN,,1,16,32,18,34,); B(B_VARIN,,16,16,33,18,35,); B(B_VARIN,,1,16,34,18,36,); B(B_F,TO_M,,18,29,23,36,); B(B_VARIN,,16#0002,16,38,18,40,); B(B_VARIN,,1,16,39,18,41,); B(B_VARIN,,17,16,40,18,42,); B(B_VARIN,,1,16,41,18,43,); B(B_F,TO_M,,18,36,23,43,); B(B_VARIN,,16#0000,16,45,18,47,); B(B_VARIN,,1,16,46,18,48,); B(B_VARIN,,17,16,47,18,49,); B(B_VARIN,,1,16,48,18,50,); B(B_F,TO_M,,18,43,23,50,); L(1,5,3,5); L(7,5,7,10); L(5,5,7,5); L(7,10,7,17); L(7,17,7,24); L(7,24,7,31); L(7,31,7,38); L(7,5,14,5); L(7,10,18,10); L(7,17,18,17); L(7,24,18,24); L(7,31,18,31); L(7,38,18,38); L(7,38,7,45); L(7,45,18,45); L(1,0,1,51); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 50 ; NETWORK_BODY B(B_CONTACT,,Converter,3,2,5,4,); B(B_VARIN,,K2M30,14,8,16,10,); B(B_VARIN,,1,14,9,16,11,); B(B_VARIN,,16,14,10,16,12,); B(B_VARIN,,1,14,11,16,13,); B(B_F,TO_M,,16,6,21,13,); B(B_VARIN,,16#0004,14,15,16,17,); B(B_VARIN,,1,14,16,16,18,); B(B_VARIN,,17,14,17,16,19,); B(B_VARIN,,1,14,18,16,20,); B(B_F,TO_M,,16,13,21,20,); B(B_VARIN,,16#0000,14,22,16,24,); B(B_VARIN,,1,14,23,16,25,); B(B_VARIN,,17,14,24,16,26,); B(B_VARIN,,1,14,25,16,27,); B(B_F,TO_M,,16,20,21,27,); B(B_VARIN,,K2M38,14,29,16,31,); B(B_VARIN,,1,14,30,16,32,); B(B_VARIN,,16,14,31,16,33,); B(B_VARIN,,1,14,32,16,34,); B(B_F,TO_M,,16,27,21,34,); B(B_VARIN,,16#0001,14,37,16,39,); B(B_VARIN,,1,14,38,16,40,); B(B_VARIN,,17,14,39,16,41,); B(B_VARIN,,1,14,40,16,42,); B(B_F,TO_M,,16,35,21,42,); B(B_VARIN,,16#0000,14,44,16,46,); B(B_VARIN,,1,14,45,16,47,); B(B_VARIN,,17,14,46,16,48,); B(B_VARIN,,1,14,47,16,49,); B(B_F,TO_M,,16,42,21,49,); B(B_VAROUT,,K4M30,19,3,21,5,); B(B_F,MOV_M,,13,1,19,5,); B(B_COMMENT,,O valor a enviar CH2 (inteiro)~ é convertido em binário e escrito bit a bit nas memórias M100-M115. CH2 pode tomar valores entre 0-4000 (12bits) onde cada unidade correponde a 2~5mV caso a saída seja em tensão e a 0~004mA em corrente.,24,1,41,8,); B(B_COMMENT,,Os 8 primeiros bits que representam o valor a enviar (12bits) em binário são lidos nas memórias M100 até M108 e escritos na memória 16 do Buffer. ,24,9,41,14,); B(B_COMMENT,,Memória do Buffer 17-[1~0~0],24,15,41,16,); B(B_COMMENT,,A passagem de 1 a 0 do terceiro bit da memória 17 permite guardar 8 bits de informação~ para que o módulo especial possa receber mais dados (4bits). ,24,17,41,21,); B(B_COMMENT,,Memória do Buffer 17-[0~0~0],24,22,41,23,); B(B_COMMENT,,Memória 17-[0~0~0],24,47,41,48,); B(B_COMMENT,,A passagem de 1 a 0 do primeiro bit da memória 17 permite executar a conversão D/A do canal 2.,24,42,41,46,); B(B_COMMENT,,Memória 17-[0~0~1],24,40,41,41,); B(B_COMMENT,,Os quatro bits mais significativos que representam valor a enviar em binário~ são lidos a partir das memórias M109 até M112 e escritos na memória 16 do Buffer.,24,28,41,33,); B(B_VARIN,,0,11,3,13,5,); L(1,3,3,3); L(7,3,7,8); L(7,8,7,15); L(7,8,16,8); L(7,15,16,15); L(7,15,7,22); L(7,22,16,22); L(7,22,7,29); L(7,29,16,29); L(7,37,16,37); L(7,37,7,44); L(7,44,16,44); L(7,29,7,37); L(5,3,7,3); L(7,3,13,3); L(1,0,1,50); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 8 ; NETWORK_BODY B(B_VARIN,,16#0,7,3,9,5,); B(B_VARIN,,16,7,4,9,6,); B(B_VARIN,,1,7,5,9,7,); B(B_VAROUT,,D6,16,3,18,5,); B(B_COMMENT,,É atribuído o valor presente na memória 16~ ao valor inteiro D6. Os 8 últimos bits da memória 16 correspondem ao valor actual de saída da comunicação entre o PLC e o módulo especial.,24,1,41,7,); B(B_F,FROMP_M,,9,1,16,7,); B(B_CONTACT,,Converter,3,2,5,4,); L(1,0,1,8); L(1,3,3,3); L(5,3,9,3); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM PROGRAM Geral VAR_EXTERNAL MES: BOOL:=FALSE; Seguranca: BOOL:=FALSE; Automatico: BOOL:=FALSE; CilExtRPH: DINT:=0; TapeteMMPS: DINT:=0; CorteRPM: DINT:=0; ChanfroRPM: DINT:=0; CilIntRPM: DINT:=0; NovaVareta: BOOL:=FALSE; TotalPecas: DINT:=0; ParcialPecas: DINT:=0; PresenVaret_BQ10: BOOL:=FALSE; Motores_KA11: BOOL:=FALSE; ResetParcial_MAC: BOOL:=FALSE; Iniciar_MAC: BOOL:=FALSE; CadPecas: INT:=0; CH1: INT:=0; CH2: INT:=0; CH3: INT:=0; CH4: INT:=0; CH5: INT:=0; Carrega_MAC: BOOL:=FALSE; Mem1: BOOL:=FALSE; Cadencia: INT:=0; CadenciaFim: BOOL:=FALSE; Minutos: INT:=0; Horas: INT:=0; Dias: INT:=0; Escova: BOOL:=FALSE; BFA: BOOL:=FALSE; CilIntRes: INT:=0; CilExtRes: INT:=0; TapeteRes: INT:=0; ChanfroRes: INT:=0; CorteRes: INT:=0; ResetTotal_MAC: 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 := 5 ; NETWORK_BODY B(B_COIL,,Seguranca,20,1,22,3,); B(B_CONTACT,,MES,4,1,6,3,); B(B_COMMENT,,Verificação das condições que permitem o funcionamento seguro da máquina e activação da marca correspondente,31,1,51,4,); L(6,2,20,2); L(1,2,4,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_COIL,,Motores_KA11,20,1,22,3,); B(B_CONTACT,,Seguranca,4,1,6,3,); B(B_COMMENT,,Permisão de movimento aos motores sempre que a máquina se encontra em segurança,31,1,51,4,); L(6,2,20,2); L(1,2,4,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_COIL,,Automatico,20,1,22,3,E); B(B_CONTACT,,Seguranca,4,1,6,3,N); B(B_COMMENT,,Corte do automático no caso de haver uma falha de segurança,31,1,51,4,); L(6,2,20,2); L(1,2,4,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 21 ; NETWORK_BODY B(B_CONTACT,,Seguranca,4,1,6,3,); B(B_F,PLF_M,,7,0,13,4,); B(B_VARIN,,0,18,3,20,5,); B(B_VAROUT,,CH1,27,3,29,5,); B(B_F,MOVP_M,,20,1,27,5,); B(B_VARIN,,0,18,7,20,9,); B(B_F,MOVP_M,,20,5,27,9,); B(B_VARIN,,0,18,11,20,13,); B(B_F,MOVP_M,,20,9,27,13,); B(B_VARIN,,0,18,15,20,17,); B(B_F,MOVP_M,,20,13,27,17,); B(B_VARIN,,0,18,19,20,21,); B(B_F,MOVP_M,,20,17,27,21,); B(B_VAROUT,,CH5,27,19,29,21,); B(B_VAROUT,,CH4,27,15,29,17,); B(B_VAROUT,,CH3,27,11,29,13,); B(B_VAROUT,,CH2,27,7,29,9,); B(B_CONTACT,,M8002,4,4,6,6,); B(B_F,PLF_M,,7,6,13,10,); B(B_CONTACT,,Automatico,4,7,6,9,); B(B_COMMENT,,Atribuição do valor zero aos valores a serem enviados para as cartas analógicas~ no arranque da máquina~sempre que há uma falha de segurança~ e sempre que termina um ciclo automático ,31,4,51,8,); L(1,2,4,2); L(6,2,7,2); L(17,3,17,7); L(17,7,20,7); L(17,7,17,11); L(17,11,20,11); L(17,11,17,15); L(17,15,20,15); L(17,15,17,19); L(17,19,20,19); L(14,3,14,5); L(6,5,14,5); L(1,5,4,5); L(14,3,20,3); L(13,3,14,3); L(1,8,4,8); L(6,8,7,8); L(13,9,14,9); L(14,5,14,9); L(1,0,1,21); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_COIL,,BFA,20,1,22,3,); B(B_CONTACT,,M100,4,1,6,3,); B(B_CONTACT,,M100,4,3,6,5,N); B(B_COMMENT,,Activação da saída física que "informa" do bom funcionamento do autómato,31,1,51,4,); L(1,0,1,5); L(6,2,20,2); L(1,2,4,2); L(1,4,4,4); L(6,4,10,4); L(10,2,10,4); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,Iniciar_MAC,4,1,6,3,); B(B_CONTACT,,Seguranca,12,1,14,3,); B(B_COIL,,Automatico,20,1,22,3,S); B(B_COMMENT,,Arranque do estado correspondente ao ciclo automático,31,1,51,4,); L(1,0,1,5); L(1,2,4,2); L(6,2,12,2); L(14,2,20,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 13 ; NETWORK_BODY B(B_CONTACT,,PresenVaret_BQ10,4,1,6,3,); B(B_CONTACT,,Automatico,13,1,15,3,); B(B_CONTACT,,Automatico,13,9,15,11,); B(B_VAROUT,,CadPecas,25,10,27,12,); B(B_F,INCP_M,,18,8,25,12,); B(B_VAROUT,,TotalPecas,25,6,27,8,); B(B_F,DINCP_M,,18,4,25,8,); B(B_VAROUT,,ParcialPecas,25,2,27,4,); B(B_F,DINCP_M,,18,0,25,4,); B(B_COMMENT,,A entrada correspondente à presença de vareta incrementa as variáveis que fazem a contagem de peças (parcial~ total~ auxiliar para cálculo da cadência). ,31,5,51,9,); L(6,2,10,2); L(1,2,4,2); L(10,2,10,6); L(10,6,10,10); L(10,2,13,2); L(10,10,13,10); L(1,0,1,13); L(15,10,18,10); L(10,6,18,6); L(15,2,18,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,CadenciaFim,4,1,6,3,N); B(B_VARIN,,TC7,17,2,19,4,); B(B_VARIN,,100,17,3,19,5,); B(B_F,TIMER_M,,19,0,26,5,); B(B_COMMENT,,Temporizador que permite cálcular a cadência.,31,1,51,2,); L(1,2,4,2); L(1,0,1,6); L(6,2,19,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 14 ; NETWORK_BODY B(B_CONTACT,,TS7,4,1,6,3,); B(B_VARIN,,360,17,6,19,8,); B(B_VARIN,,CadPecas,17,7,19,9,); B(B_VAROUT,,Cadencia,25,6,27,8,); B(B_F,MUL_E-2,,19,4,25,9,); B(B_VARIN,,0,17,11,19,13,); B(B_VAROUT,,CadPecas,26,11,28,13,); B(B_F,MOVP_M,,19,9,26,13,); B(B_F,PLS_M,,19,0,25,4,); B(B_VAROUT,,CadenciaFim,25,2,27,4,); B(B_COMMENT,,De dez em dez segundos (TS7)~ é reinicializado o contador de peças auxiliar e é determinada a cadência,31,5,51,8,); L(1,2,4,2); L(6,2,13,2); L(13,2,13,6); L(13,6,19,6); L(13,2,19,2); L(13,6,13,11); L(13,11,19,11); L(1,0,1,14); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_CONTACT,,Automatico,10,1,12,3,); B(B_CONTACT,,TS8,4,1,6,3,N); B(B_VARIN,,TC8,17,2,19,4,); B(B_VARIN,,590,17,3,19,5,); B(B_F,TIMER_M,,19,0,26,5,); B(B_COMMENT,,Temporizador que permite contabilizar os minutos decorridos em funcionamento automático,31,2,51,4,); L(1,0,1,7); L(12,2,19,2); L(6,2,10,2); L(1,2,4,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,TS8,4,1,6,3,); B(B_VAROUT,,Minutos,26,2,28,4,); B(B_F,INCP_M,,19,0,26,4,); B(B_COMMENT,,Contador de minutos,31,2,51,3,); L(1,0,1,6); L(6,2,19,2); L(1,2,4,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 12 ; NETWORK_BODY B(B_VARIN,,60,4,3,6,5,); B(B_F,@EQ-2,,6,1,11,5,); B(B_VARIN,,Minutos,4,2,6,4,); B(B_VARIN,,0,17,3,19,5,); B(B_VAROUT,,Minutos,26,3,28,5,); B(B_F,MOVP_M,,19,1,26,5,); B(B_VAROUT,,Horas,26,9,28,11,); B(B_F,INCP_M,,19,7,26,11,); B(B_COMMENT,,Contador de horas,31,5,51,6,); L(1,0,1,12); L(14,3,14,9); L(14,9,19,9); L(14,3,19,3); L(11,3,14,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 11 ; NETWORK_BODY B(B_VARIN,,24,4,3,6,5,); B(B_F,@EQ-2,,6,1,11,5,); B(B_VARIN,,Horas,4,2,6,4,); B(B_VARIN,,0,17,3,19,5,); B(B_VAROUT,,Horas,26,3,28,5,); B(B_F,MOVP_M,,19,1,26,5,); B(B_VAROUT,,Dias,26,9,28,11,); B(B_F,INCP_M,,19,7,26,11,); B(B_COMMENT,,Contador de dias,31,5,51,6,); L(14,3,14,9); L(14,9,19,9); L(14,3,19,3); L(11,3,14,3); L(1,0,1,11); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 21 ; NETWORK_BODY B(B_VARIN,,0,17,3,19,5,); B(B_VAROUT,,Horas,26,3,28,5,); B(B_F,MOVP_M,,19,1,26,5,); B(B_VARIN,,0,17,8,19,10,); B(B_VAROUT,,Minutos,26,8,28,10,); B(B_F,MOVP_M,,19,6,26,10,); B(B_VARIN,,0,17,13,19,15,); B(B_VAROUT,,Dias,26,13,28,15,); B(B_F,MOVP_M,,19,11,26,15,); B(B_VARIN,,0,17,18,19,20,); B(B_VAROUT,,TotalPecas,26,18,28,20,); B(B_F,DMOVP_M,,19,16,26,20,); B(B_CONTACT,,ResetTotal_MAC,4,2,6,4,); B(B_COMMENT,,Inicialização dos contadores torais de peças e tempo de ciclo automático,31,8,51,12,); L(14,3,14,8); L(14,8,19,8); L(14,8,14,13); L(14,13,19,13); L(14,13,14,18); L(14,18,19,18); L(14,3,19,3); L(1,0,1,21); L(6,3,14,3); L(1,3,4,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_VARIN,,CilIntRPM,5,1,7,3,); B(B_VARIN,,2000,5,2,7,4,); B(B_F,@MUL-2,,7,0,12,4,); B(B_VARIN,,27,12,2,14,4,); B(B_F,@DIV,,14,0,19,4,); B(B_F,DINT_TO_INT,,19,0,29,3,); B(B_VAROUT,,CilIntRes,29,1,31,3,); B(B_COMMENT,,Conversão de unidades RPM -> Resolução Carta,31,3,50,4,); L(12,2,14,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_F,DINT_TO_INT,,19,0,29,3,); B(B_VAROUT,,CilExtRes,29,1,31,3,); B(B_VARIN,,77,12,2,14,4,); B(B_F,@DIV,,14,0,19,4,); B(B_VARIN,,CilExtRPH,5,1,7,3,); B(B_VARIN,,2000,5,2,7,4,); B(B_F,@MUL-2,,7,0,12,4,); B(B_COMMENT,,Conversão de unidades RPH -> Resolução Carta,31,3,50,4,); L(12,2,14,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_F,DINT_TO_INT,,19,0,29,3,); B(B_VAROUT,,TapeteRes,29,1,31,3,); B(B_VARIN,,58,12,2,14,4,); B(B_F,@DIV,,14,0,19,4,); B(B_VARIN,,TapeteMMPS,5,1,7,3,); B(B_VARIN,,2000,5,2,7,4,); B(B_F,@MUL-2,,7,0,12,4,); B(B_COMMENT,,Conversão de unidades mm por seg. -> Resolução Carta,31,3,50,5,); L(1,0,1,6); L(12,2,14,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_VARIN,,ChanfroRPM,5,1,7,3,); B(B_VARIN,,200,5,2,7,4,); B(B_F,@MUL-2,,7,0,12,4,); B(B_VARIN,,448,12,2,14,4,); B(B_F,@DIV,,14,0,19,4,); B(B_F,DINT_TO_INT,,19,0,29,3,); B(B_VAROUT,,ChanfroRes,29,1,31,3,); B(B_COMMENT,,Conversão de unidades RPM -> Resolução Carta,31,3,50,4,); L(12,2,14,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_VARIN,,CorteRPM,5,1,7,3,); B(B_VARIN,,400,5,2,7,4,); B(B_F,@MUL-2,,7,0,12,4,); B(B_VARIN,,448,12,2,14,4,); B(B_F,@DIV,,14,0,19,4,); B(B_F,DINT_TO_INT,,19,0,29,3,); B(B_VAROUT,,CorteRes,29,1,31,3,); B(B_COMMENT,,Conversão de unidades RPM -> Resolução Carta,31,3,50,4,); L(12,2,14,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM PROGRAM MAC VAR_EXTERNAL CilIntRPM: DINT:=0; CilExtRPH: DINT:=0; TapeteMMPS: DINT:=0; CorteRPM: DINT:=0; ChanfroRPM: DINT:=0; Carrega_MAC: BOOL:=FALSE; ResetParcial_MAC: BOOL:=FALSE; Iniciar_MAC: BOOL:=FALSE; Mem1: BOOL:=FALSE; Mem2: BOOL:=FALSE; Mem3: BOOL:=FALSE; Guarda_MAC: BOOL:=FALSE; Inicial_Menu: BOOL:=FALSE; Memorias_Menu: 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 := 8 ; NETWORK_BODY B(B_CONTACT,,Memorias_Menu,4,1,6,3,); B(B_COIL,,Mem1,28,1,30,3,E); B(B_COIL,,Mem2,28,3,30,5,E); B(B_COIL,,Mem3,28,5,30,7,E); B(B_COMMENT,,Inicialização do item escolhido no menu da MAC "memori".,40,3,60,5,); L(1,2,4,2); L(10,4,28,4); L(10,6,28,6); L(6,2,10,2); L(10,2,28,2); L(10,2,10,4); L(10,4,10,6); L(1,0,1,8); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 9 ; NETWORK_BODY B(B_CONTACT,,Mem1,4,1,6,3,); B(B_COIL,,Mem3,28,6,30,8,E); B(B_COIL,,Mem2,28,4,30,6,E); B(B_COIL,,Mem1,28,2,30,4,S); B(B_F,PLS_M,,8,0,14,4,); B(B_COMMENT,,Activação do item correspondente à posição 1 no menu memori.,40,3,60,5,); L(1,2,4,2); L(14,5,28,5); L(14,3,14,5); L(14,5,14,7); L(14,7,28,7); L(14,3,28,3); L(1,0,1,9); L(6,2,8,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 9 ; NETWORK_BODY B(B_CONTACT,,Mem2,4,1,6,3,); B(B_COIL,,Mem3,28,6,30,8,E); B(B_COIL,,Mem2,28,4,30,6,S); B(B_COIL,,Mem1,28,2,30,4,E); B(B_F,PLS_M,,7,0,13,4,); B(B_COMMENT,,Activação do item correspondente à posição 2 no menu memori.,40,4,60,6,); L(1,2,4,2); L(15,3,28,3); L(15,5,28,5); L(15,7,28,7); L(1,0,1,9); L(6,2,7,2); L(13,3,15,3); L(15,5,15,7); L(15,3,15,5); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 9 ; NETWORK_BODY B(B_CONTACT,,Mem3,4,1,6,3,); B(B_F,PLS_M,,8,0,14,4,); B(B_COIL,,Mem3,28,6,30,8,S); B(B_COIL,,Mem2,28,4,30,6,E); B(B_COIL,,Mem1,28,2,30,4,E); B(B_COMMENT,,Activação do item correspondente à posição 3 no menu memori.,40,4,60,6,); L(1,2,4,2); L(6,2,8,2); L(15,3,28,3); L(15,7,28,7); L(15,5,28,5); L(15,3,15,5); L(15,5,15,7); L(14,3,15,3); L(1,0,1,9); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 21 ; NETWORK_BODY B(B_CONTACT,,Guarda_MAC,4,1,6,3,); B(B_VAROUT,,D211,37,2,39,4,); B(B_VAROUT,,D213,37,10,39,12,); B(B_VAROUT,,D214,37,14,39,16,); B(B_VAROUT,,D215,37,18,39,20,); B(B_VAROUT,,D212,37,6,39,8,); B(B_F,DINT_TO_INT,,20,2,30,5,); B(B_VARIN,,CilIntRPM,18,3,20,5,); B(B_F,DINT_TO_INT,,20,6,30,9,); B(B_VARIN,,CilExtRPH,18,7,20,9,); B(B_VARIN,,TapeteMMPS,18,11,20,13,); B(B_VARIN,,CorteRPM,18,19,20,21,); B(B_F,DINT_TO_INT,,20,10,30,13,); B(B_F,DINT_TO_INT,,20,14,30,17,); B(B_VARIN,,ChanfroRPM,18,15,20,17,); B(B_F,DINT_TO_INT,,20,18,30,21,); B(B_F,MOVP_M,,30,0,37,4,); B(B_F,MOVP_M,,30,4,37,8,); B(B_F,MOVP_M,,30,8,37,12,); B(B_F,MOVP_M,,30,12,37,16,); B(B_F,MOVP_M,,30,16,37,20,); B(B_CONTACT,,Mem1,9,1,11,3,); B(B_COMMENT,,Atribuição dos parametros máquina à memória de configuração número 1,41,10,60,12,); L(1,2,4,2); L(13,2,30,2); L(13,14,30,14); L(30,3,30,4); L(30,7,30,8); L(30,11,30,12); L(30,15,30,16); L(30,19,30,20); L(13,18,30,18); L(13,2,13,14); L(13,14,13,18); L(13,10,30,10); L(13,6,30,6); L(6,2,9,2); L(11,2,13,2); L(1,0,1,21); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 21 ; NETWORK_BODY B(B_CONTACT,,Guarda_MAC,4,1,6,3,); B(B_VAROUT,,D221,37,2,39,4,); B(B_VAROUT,,D223,37,10,39,12,); B(B_VAROUT,,D224,37,14,39,16,); B(B_VAROUT,,D225,37,18,39,20,); B(B_VAROUT,,D222,37,6,39,8,); B(B_F,DINT_TO_INT,,20,2,30,5,); B(B_VARIN,,CilIntRPM,18,3,20,5,); B(B_F,DINT_TO_INT,,20,6,30,9,); B(B_VARIN,,CilExtRPH,18,7,20,9,); B(B_VARIN,,TapeteMMPS,18,11,20,13,); B(B_VARIN,,CorteRPM,18,19,20,21,); B(B_F,DINT_TO_INT,,20,10,30,13,); B(B_F,DINT_TO_INT,,20,14,30,17,); B(B_VARIN,,ChanfroRPM,18,15,20,17,); B(B_F,DINT_TO_INT,,20,18,30,21,); B(B_F,MOVP_M,,30,0,37,4,); B(B_F,MOVP_M,,30,4,37,8,); B(B_F,MOVP_M,,30,8,37,12,); B(B_F,MOVP_M,,30,12,37,16,); B(B_F,MOVP_M,,30,16,37,20,); B(B_CONTACT,,Mem2,10,1,12,3,); B(B_COMMENT,,Atribuição dos parametros máquina à memória de configuração número 2,41,10,60,12,); L(1,2,4,2); L(13,2,30,2); L(13,14,30,14); L(30,3,30,4); L(13,18,30,18); L(30,7,30,8); L(30,11,30,12); L(30,15,30,16); L(30,19,30,20); L(13,2,13,14); L(13,10,30,10); L(13,6,30,6); L(6,2,10,2); L(12,2,13,2); L(13,14,13,18); L(1,0,1,21); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 22 ; NETWORK_BODY B(B_CONTACT,,Guarda_MAC,4,1,6,3,); B(B_VAROUT,,D231,37,2,39,4,); B(B_VAROUT,,D233,37,10,39,12,); B(B_VAROUT,,D234,37,14,39,16,); B(B_VAROUT,,D235,37,18,39,20,); B(B_VAROUT,,D232,37,6,39,8,); B(B_F,DINT_TO_INT,,20,2,30,5,); B(B_VARIN,,CilIntRPM,18,3,20,5,); B(B_F,DINT_TO_INT,,20,6,30,9,); B(B_VARIN,,CilExtRPH,18,7,20,9,); B(B_VARIN,,TapeteMMPS,18,11,20,13,); B(B_VARIN,,CorteRPM,18,19,20,21,); B(B_F,DINT_TO_INT,,20,10,30,13,); B(B_F,DINT_TO_INT,,20,14,30,17,); B(B_VARIN,,ChanfroRPM,18,15,20,17,); B(B_F,DINT_TO_INT,,20,18,30,21,); B(B_F,MOVP_M,,30,0,37,4,); B(B_F,MOVP_M,,30,4,37,8,); B(B_F,MOVP_M,,30,8,37,12,); B(B_F,MOVP_M,,30,12,37,16,); B(B_F,MOVP_M,,30,16,37,20,); B(B_CONTACT,,Mem3,10,1,12,3,); B(B_COMMENT,,Atribuição dos parametros máquina à memória de configuração número 3,41,9,60,11,); L(1,2,4,2); L(6,2,10,2); L(30,3,30,4); L(30,7,30,8); L(30,11,30,12); L(30,15,30,16); L(30,19,30,20); L(13,2,13,14); L(13,14,30,14); L(13,14,13,18); L(13,18,30,18); L(12,2,30,2); L(13,6,30,6); L(13,10,30,10); L(1,0,1,22); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 21 ; NETWORK_BODY B(B_CONTACT,,Carrega_MAC,4,1,6,3,); B(B_CONTACT,,Mem1,9,1,11,3,); B(B_CONTACT,,M8002,4,3,6,5,); B(B_VAROUT,,CilIntRPM,34,2,36,4,); B(B_VAROUT,,CilExtRPH,34,6,36,8,); B(B_VAROUT,,TapeteMMPS,34,10,36,12,); B(B_VARIN,,D213,15,11,17,13,); B(B_F,INT_TO_DINT,,17,10,27,13,); B(B_VARIN,,D212,15,7,17,9,); B(B_F,INT_TO_DINT,,17,6,27,9,); B(B_VARIN,,D211,15,3,17,5,); B(B_F,INT_TO_DINT,,17,2,27,5,); B(B_VARIN,,D214,15,15,17,17,); B(B_F,INT_TO_DINT,,17,14,27,17,); B(B_VAROUT,,ChanfroRPM,34,14,36,16,); B(B_VARIN,,D215,15,19,17,21,); B(B_F,INT_TO_DINT,,17,18,27,21,); B(B_VAROUT,,CorteRPM,34,18,36,20,); B(B_F,DMOVP_M,,27,16,34,20,); B(B_F,DMOVP_M,,27,12,34,16,); B(B_F,DMOVP_M,,27,8,34,12,); B(B_F,DMOVP_M,,27,0,34,4,); B(B_F,DMOVP_M,,27,4,34,8,); B(B_COMMENT,,Atribuição da configuração presente na memória 1 aos paramêtros máquina,41,11,60,13,); L(1,2,4,2); L(6,2,9,2); L(1,4,4,4); L(27,11,27,12); L(27,7,27,8); L(27,3,27,4); L(27,15,27,16); L(13,14,27,14); L(27,19,27,20); L(13,18,27,18); L(13,14,13,18); L(13,2,13,14); L(13,10,27,10); L(13,6,27,6); L(13,2,27,2); L(11,2,13,2); L(12,2,12,4); L(6,4,12,4); L(1,0,1,21); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 22 ; NETWORK_BODY B(B_CONTACT,,Carrega_MAC,4,1,6,3,); B(B_CONTACT,,Mem2,9,1,11,3,); B(B_VAROUT,,CilIntRPM,34,2,36,4,); B(B_VAROUT,,CilExtRPH,34,6,36,8,); B(B_VAROUT,,TapeteMMPS,34,10,36,12,); B(B_F,INT_TO_DINT,,17,10,27,13,); B(B_VARIN,,D222,15,7,17,9,); B(B_F,INT_TO_DINT,,17,6,27,9,); B(B_VARIN,,D221,15,3,17,5,); B(B_F,INT_TO_DINT,,17,2,27,5,); B(B_VARIN,,D224,15,15,17,17,); B(B_F,INT_TO_DINT,,17,14,27,17,); B(B_VAROUT,,ChanfroRPM,34,14,36,16,); B(B_VARIN,,D225,15,19,17,21,); B(B_F,INT_TO_DINT,,17,18,27,21,); B(B_VAROUT,,CorteRPM,34,18,36,20,); B(B_F,DMOVP_M,,27,16,34,20,); B(B_F,DMOVP_M,,27,12,34,16,); B(B_F,DMOVP_M,,27,8,34,12,); B(B_F,DMOVP_M,,27,4,34,8,); B(B_F,DMOVP_M,,27,0,34,4,); B(B_VARIN,,D223,15,11,17,13,); B(B_COMMENT,,Atribuição da configuração presente na memória 2 aos paramêtros máquina,41,12,60,14,); L(1,2,4,2); L(6,2,9,2); L(27,11,27,12); L(27,7,27,8); L(27,3,27,4); L(27,15,27,16); L(27,19,27,20); L(13,2,13,6); L(13,6,27,6); L(13,6,13,10); L(13,10,27,10); L(13,10,13,14); L(13,14,27,14); L(13,14,13,18); L(13,18,27,18); L(13,2,27,2); L(11,2,13,2); L(1,0,1,22); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 22 ; NETWORK_BODY B(B_CONTACT,,Carrega_MAC,4,1,6,3,); B(B_CONTACT,,Mem3,9,1,11,3,); B(B_VAROUT,,CilIntRPM,34,2,36,4,); B(B_VAROUT,,CilExtRPH,34,6,36,8,); B(B_VAROUT,,TapeteMMPS,34,10,36,12,); B(B_VARIN,,D233,15,11,17,13,); B(B_F,INT_TO_DINT,,17,10,27,13,); B(B_VARIN,,D232,15,7,17,9,); B(B_F,INT_TO_DINT,,17,6,27,9,); B(B_VARIN,,D231,15,3,17,5,); B(B_F,INT_TO_DINT,,17,2,27,5,); B(B_VARIN,,D234,15,15,17,17,); B(B_F,INT_TO_DINT,,17,14,27,17,); B(B_VAROUT,,ChanfroRPM,34,14,36,16,); B(B_VARIN,,D235,15,19,17,21,); B(B_F,INT_TO_DINT,,17,18,27,21,); B(B_VAROUT,,CorteRPM,34,18,36,20,); B(B_F,DMOVP_M,,27,16,34,20,); B(B_F,DMOVP_M,,27,12,34,16,); B(B_F,DMOVP_M,,27,8,34,12,); B(B_F,DMOVP_M,,27,4,34,8,); B(B_F,DMOVP_M,,27,0,34,4,); B(B_COMMENT,,Atribuição da configuração presente na memória 3 aos paramêtros máquina,41,10,60,12,); L(1,2,4,2); L(6,2,9,2); L(27,11,27,12); L(27,7,27,8); L(27,3,27,4); L(27,15,27,16); L(27,19,27,20); L(13,2,13,6); L(13,6,27,6); L(13,6,13,10); L(13,10,27,10); L(13,10,13,14); L(13,14,27,14); L(13,14,13,18); L(13,18,27,18); L(11,2,27,2); L(1,0,1,22); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_CONTACT,,ResetParcial_MAC,4,1,6,3,); B(B_CONTACT,,Iniciar_MAC,4,4,6,6,); B(B_VARIN,,0,28,2,30,4,); B(B_VAROUT,,D50,37,2,39,4,); B(B_F,MOVP_M,,30,0,37,4,); B(B_COMMENT,,Por pressão de um botão da MAC ou quando é iniciado o ciclo automático~ o contador parcial de peças é posto a zero,41,1,60,5,); L(1,2,4,2); L(1,5,4,5); L(6,5,10,5); L(10,2,10,5); L(6,2,10,2); L(1,0,1,7); L(10,2,30,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_COIL,,Inicial_Menu,28,1,30,3,); B(B_CONTACT,,Carrega_MAC,4,1,6,3,); L(6,2,28,2); L(1,2,4,2); L(1,0,1,5); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM PROGRAM Saidas VAR_EXTERNAL CH1: INT:=0; CH2: INT:=0; CH3: INT:=0; CH4: INT:=0; CH5: INT:=0; Automatico: BOOL:=FALSE; Escova_YV6: BOOL:=FALSE; Escova: BOOL:=FALSE; BicodeSopro_YV7: BOOL:=FALSE; Aliment_YV5: BOOL:=FALSE; Aliment: BOOL:=FALSE; Seguranca: BOOL:=FALSE; Aliment_BP2: BOOL:=FALSE; PresenVaret_BQ10: BOOL:=FALSE; Alimentacao: BOOL:=FALSE; Converter: BOOL:=FALSE; NovaVareta: BOOL:=FALSE; BicodeSopro_MAC: BOOL:=FALSE; Aliment_MAC: BOOL:=FALSE; Escova_MAC: BOOL:=FALSE; CilInt_MAC: BOOL:=FALSE; CilExt_MAC: BOOL:=FALSE; Tapete_MAC: BOOL:=FALSE; Corte_MAC: BOOL:=FALSE; Chanfro_MAC: BOOL:=FALSE; AcelDiscos: BOOL:=FALSE; AcelCilInt: BOOL:=FALSE; Continuo: BOOL:=FALSE; (* *) CilIntRes: INT:=0; (* *) CilExtRes: INT:=0; (* *) TapeteRes: INT:=0; (* *) ChanfroRes: INT:=0; (* *) CorteRes: INT:=0; (* *) CiclosFinais: 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_COIL,,Escova_YV6,27,1,29,3,); B(B_COMMENT,,Activação em manual da electroválvula que comanda a escova de limpeza,35,1,52,5,); B(B_CONTACT,,Escova_MAC,4,1,6,3,); B(B_CONTACT,,Automatico,10,1,12,3,N); B(B_CONTACT,,Seguranca,20,1,22,3,); B(B_CONTACT,,Escova,4,3,6,5,); B(B_CONTACT,,Automatico,10,3,12,5,); L(1,2,4,2); L(6,2,10,2); L(1,0,1,6); L(12,2,20,2); L(22,2,27,2); L(6,4,10,4); L(1,4,4,4); L(12,4,16,4); L(16,2,16,4); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,Automatico,4,1,6,3,); B(B_COIL,,BicodeSopro_YV7,27,1,29,3,); B(B_CONTACT,,BicodeSopro_MAC,4,3,6,5,); B(B_CONTACT,,Automatico,10,3,12,5,N); B(B_COMMENT,,Activação em manual da electróválvula do bico de sopro,35,1,52,5,); B(B_CONTACT,,Seguranca,20,1,22,3,); L(1,2,4,2); L(1,4,4,4); L(16,2,16,4); L(6,4,10,4); L(12,4,16,4); L(1,0,1,6); L(6,2,20,2); L(22,2,27,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 12 ; NETWORK_BODY B(B_CONTACT,,AcelDiscos,4,1,6,3,); B(B_CONTACT,,AcelCilInt,4,3,6,5,); B(B_CONTACT,,Continuo,4,5,6,7,); B(B_F,MOVP_M,,23,0,30,4,); B(B_VARIN,,ChanfroRes,21,2,23,4,); B(B_VAROUT,,CH4,30,2,32,4,); B(B_COMMENT,,Os canais 4 e 5 são os canais correspondentes aos motores das baterias de corte e chanfro. Em ciclo automático estes motores são os primeiros e permanecem ao longo de todo o ciclo. Enviar _MAC é uma marca que permite enviar valores em modo manual.,35,1,52,11,); B(B_CONTACT,,Chanfro_MAC,4,7,6,9,); B(B_CONTACT,,CiclosFinais,4,9,6,11,); L(1,2,4,2); L(1,4,4,4); L(1,6,4,6); L(6,4,14,4); L(6,6,14,6); L(6,2,14,2); L(14,2,23,2); L(14,2,14,4); L(14,4,14,6); L(1,0,1,12); L(14,6,14,8); L(6,8,14,8); L(1,8,4,8); L(14,8,14,10); L(6,10,14,10); L(1,10,4,10); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 12 ; NETWORK_BODY B(B_CONTACT,,AcelDiscos,4,1,6,3,); B(B_CONTACT,,AcelCilInt,4,3,6,5,); B(B_CONTACT,,Continuo,4,5,6,7,); B(B_F,MOVP_M,,23,0,30,4,); B(B_VARIN,,CorteRes,21,2,23,4,); B(B_VAROUT,,CH5,30,2,32,4,); B(B_COMMENT,,Os canais 4 e 5 são os canais correspondentes aos motores das baterias de corte e chanfro. Em ciclo automático estes motores são os primeiros e permanecem ao longo de todo o ciclo. Enviar _MAC é uma marca que permite enviar valores em modo manual.,35,1,52,11,); B(B_CONTACT,,Corte_MAC,4,7,6,9,); B(B_CONTACT,,CiclosFinais,4,9,6,11,); L(1,2,4,2); L(1,4,4,4); L(1,6,4,6); L(6,4,14,4); L(6,6,14,6); L(6,2,14,2); L(14,2,23,2); L(14,2,14,4); L(14,4,14,6); L(1,0,1,12); L(14,6,14,8); L(6,8,14,8); L(1,8,4,8); L(14,8,14,10); L(6,10,14,10); L(1,10,4,10); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 11 ; NETWORK_BODY B(B_CONTACT,,Continuo,4,1,6,3,); B(B_F,MOVP_M,,23,0,30,4,); B(B_VARIN,,CilExtRes,21,2,23,4,); B(B_VAROUT,,CH2,30,2,32,4,); B(B_CONTACT,,CilExt_MAC,4,3,6,5,); B(B_COMMENT,,O canal 1 corresponde ao cilindro interior que permite executar a rotação da peça. Em ciclo automático este movimento "espera" que os discos estejam a rodar em pleno e é iniciado antes que o cilindro exterior e o tapete (transportes) iniciem o movimentos,35,1,52,10,); B(B_CONTACT,,CiclosFinais,4,5,6,7,); L(1,2,4,2); L(6,2,23,2); L(1,4,4,4); L(14,2,14,4); L(6,4,14,4); L(1,0,1,11); L(14,4,14,6); L(6,6,14,6); L(1,6,4,6); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_CONTACT,,Continuo,4,1,6,3,); B(B_F,MOVP_M,,23,0,30,4,); B(B_VARIN,,TapeteRes,21,2,23,4,); B(B_VAROUT,,CH3,30,2,32,4,); B(B_CONTACT,,Tapete_MAC,4,3,6,5,); B(B_COMMENT,,O canal 3 corresponde aos motores de transporte~ que são os ultimos a serem activados (em contínuo).,35,1,52,5,); B(B_CONTACT,,CiclosFinais,4,5,6,7,); L(1,2,4,2); L(6,2,23,2); L(1,4,4,4); L(14,2,14,4); L(6,4,14,4); L(14,4,14,6); L(6,6,14,6); L(1,6,4,6); L(1,0,1,7); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 13 ; NETWORK_BODY B(B_CONTACT,,Continuo,4,4,6,6,); B(B_CONTACT,,M8002,4,6,6,8,); B(B_CONTACT,,AcelCilInt,4,2,6,4,); B(B_VARIN,,CilIntRes,21,3,23,5,); B(B_VAROUT,,CH1,30,3,32,5,); B(B_F,MOVP_M,,23,1,30,5,); B(B_CONTACT,,CilInt_MAC,4,8,6,10,); B(B_COMMENT,,O canal 1 corresponde ao cilindro interior que permite executar a rotação da peça. Em ciclo automático este movimento "espera" que os discos estejam a rodar em pleno e é iniciado antes que o cilindro exterior e o tapete (transportes) iniciem o movimentos,35,1,52,9,); B(B_CONTACT,,CiclosFinais,4,10,6,12,); L(1,5,4,5); L(6,5,14,5); L(1,7,4,7); L(6,7,14,7); L(1,3,4,3); L(6,3,14,3); L(14,3,23,3); L(6,9,14,9); L(1,9,4,9); L(14,3,14,5); L(14,5,14,7); L(14,7,14,9); L(1,0,1,13); L(14,9,14,11); L(6,11,14,11); L(1,11,4,11); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 50 ; NETWORK_BODY B(B_CONTACT,,CilInt_MAC,5,22,7,24,); B(B_F,PLF_M,,12,40,18,44,); B(B_CONTACT,,Seguranca,5,41,7,43,); B(B_CONTACT,,CilExt_MAC,5,25,7,27,); B(B_CONTACT,,Tapete_MAC,5,28,7,30,); B(B_CONTACT,,Corte_MAC,5,31,7,33,); B(B_CONTACT,,M8002,5,37,7,39,); B(B_CONTACT,,Chanfro_MAC,5,34,7,36,); B(B_F,PLF_M,,12,45,18,49,); B(B_CONTACT,,Automatico,5,46,7,48,); B(B_CONTACT,,Automatico,13,22,15,24,N); B(B_CONTACT,,Automatico,13,25,15,27,N); B(B_CONTACT,,Automatico,13,28,15,30,N); B(B_CONTACT,,Automatico,13,31,15,33,N); B(B_CONTACT,,Automatico,13,34,15,36,N); B(B_VARIN,,CilIntRes,4,2,6,4,); B(B_VARIN,,CH1,4,3,6,5,); B(B_F,@EQ-2,,6,1,11,5,); B(B_VARIN,,CilExtRes,4,6,6,8,); B(B_VARIN,,CH2,4,7,6,9,); B(B_VARIN,,TapeteRes,4,10,6,12,); B(B_VARIN,,CH3,4,11,6,13,); B(B_VARIN,,ChanfroRes,4,14,6,16,); B(B_VARIN,,CH4,4,15,6,17,); B(B_VARIN,,CorteRes,4,18,6,20,); B(B_VARIN,,CH5,4,19,6,21,); B(B_F,@EQ-2,,6,5,11,9,); B(B_F,PLS_M,,12,5,18,9,); B(B_F,@EQ-2,,6,9,11,13,); B(B_F,PLS_M,,12,9,18,13,); B(B_F,@EQ-2,,6,13,11,17,); B(B_F,PLS_M,,12,13,18,17,); B(B_F,@EQ-2,,6,17,11,21,); B(B_F,PLS_M,,12,17,18,21,); B(B_F,PLS_M,,12,1,18,5,); B(B_COIL,,Converter,25,3,27,5,); B(B_COMMENT,,Reunião de todos os sinais que correspondem a uma conversão das cartas analógicas.,35,1,52,4,); B(B_COMMENT,, Sempre que um valor é atribuido a um CH a partir de um valor em resolução~ é efectuada uma conversão. ,35,6,52,9,); B(B_COMMENT,,Sempre que em manual for indicado expressamente uma alteração de velocidade.,35,23,52,27,); B(B_COMMENT,,Sempre que há uma falha na segurança ou que termina um ciclo automático,35,43,52,47,); B(B_COMMENT,,Sempre que a máquina é arrancada,35,37,52,38,); L(1,23,5,23); L(1,42,5,42); L(7,42,12,42); L(18,43,20,43); L(20,39,20,43); L(1,26,5,26); L(1,29,5,29); L(1,32,5,32); L(1,38,5,38); L(7,38,20,38); L(1,35,5,35); L(20,38,20,39); L(1,0,1,50); L(20,43,20,48); L(18,48,20,48); L(1,47,5,47); L(7,47,12,47); L(7,23,13,23); L(15,23,20,23); L(7,26,13,26); L(15,26,20,26); L(7,29,13,29); L(15,29,20,29); L(7,32,13,32); L(15,32,20,32); L(7,35,13,35); L(15,35,20,35); L(11,7,12,7); L(11,11,12,11); L(11,15,12,15); L(11,19,12,19); L(11,3,12,3); L(18,4,20,4); L(20,4,20,38); L(20,4,25,4); L(18,8,20,8); L(18,12,20,12); L(18,16,20,16); L(18,20,20,20); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 9 ; NETWORK_BODY B(B_CONTACT,,Aliment,4,1,6,3,); B(B_COIL,,Aliment_YV5,25,1,27,3,N); B(B_CONTACT,,Seguranca,17,1,19,3,); B(B_CONTACT,,Aliment_MAC,4,5,6,7,); B(B_CONTACT,,Automatico,11,5,13,7,N); B(B_COMMENT,,Activação do cilindro de alimentação em manual ou em automático.,35,1,52,4,); L(1,2,4,2); L(6,2,17,2); L(19,2,25,2); L(1,0,1,9); L(6,6,11,6); L(13,6,15,6); L(15,2,15,6); L(1,6,4,6); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM CONFIGURATION scConfiguration RESOURCE scResource ON scResourceType VAR_GLOBAL CH1 AT %MW0.1: INT:=0; (*Valor do canal 1 da carta 4DA*) (*0-2000*) CH2 AT %MW0.2: INT:=0; (*Valor do canal 2 da carta 4DA*) (*0-2000*) CH3 AT %MW0.3: INT:=0; (*Valor do canal 3 da carta 4DA*) (*0-2000*) CH4 AT %MW0.4: INT:=0; (*Valor do canal 4 da carta 4DA*) (*0-2000*) CH5 AT %MW0.5: INT:=0; (*Valor do canal 1 da carta 2DA*) (*0-4000*) CilIntRPM AT %MD0.10: DINT:=0; (*Valor do motor 1 em RPM*) (*0-27*) CilExtRPH AT %MD0.12: DINT:=0; (*Valor do motor 2 em rot. por hora*) (*0-77*) TapeteMMPS AT %MD0.14: DINT:=0; (*Valor do motor 3 em mm por segundo*) (*0-58*) ChanfroRPM AT %MD0.16: DINT:=0; (*Valor do motor 5 em RPM*) (*0-4480*) CorteRPM AT %MD0.18: DINT:=0; (*Valor do motor 4 em RPM*) (*0-4480*) CilIntRes AT %MW0.21: INT:=0; (*Valor do motor do cil. Int. em resolução das cartas*) (*0-2000*) CilExtRes AT %MW0.22: INT:=0; (*Valor do motor do cil. ext. em res. das cartas.*) (*0-2000*) TapeteRes AT %MW0.23: INT:=0; (*Valor do motor do tapete em res. das cartas*) (*0-2000*) ChanfroRes AT %MW0.24: INT:=0; (*Valor do motor de chanfro em res. das cartas*) (*0-2000*) CorteRes AT %MW0.25: INT:=0; (*Valor do motor de corte em res. das cartas*) (*0-4000*) ParcialPecas AT %MD0.52: DINT:=0; (*Parcial de peças*) LotePecas AT %MD0.54: DINT:=0; (*Número de peças a cortar*) Cadencia AT %MW0.56: INT:=0; (*Cadência estimada a partir do sensor *) CadPecas AT %MW0.58: INT:=0; (*Número de peças a cada 10 segundos*) Minutos AT %MW0.201: INT:=0; (**) (*Não volátil*) Horas AT %MW0.202: INT:=0; (**) (*Não volátil*) Dias AT %MW0.203: INT:=0; (**) (*Não volátil*) TotalPecas AT %MD0.250: DINT:=0; (*Total de peças*) Seguranca AT %MX0.2: BOOL:=FALSE; Converter AT %MX0.3: BOOL:=FALSE; (*Conversão das cartas*) Automatico AT %MX0.70: BOOL:=FALSE; AcelDiscos AT %MX0.71: BOOL:=FALSE; (*Estado de acel. dos discos*) AcelCilInt AT %MX0.72: BOOL:=FALSE; (*Estado de acel. do Cil. Interior*) Continuo AT %MX0.73: BOOL:=FALSE; (*Estado de funcionamento contínuo*) CiclosFinais AT %MX0.74: BOOL:=FALSE; (*Estado de funcionamento contínuo*) Fim AT %MX0.75: BOOL:=FALSE; (*Estado de funcionamento contínuo*) Terminar AT %MX0.78: BOOL:=FALSE; (*Estado de funcionamento contínuo*) Alimentacao AT %MX0.80: BOOL:=FALSE; (*Alimentação ligada*) NovaVareta AT %MX0.81: BOOL:=FALSE; (*Nova Vareta*) Aliment AT %MX0.82: BOOL:=FALSE; (*Marca auxiliar para o cilindro de alimentação*) Escova AT %MX0.83: BOOL:=FALSE; (*Marca auxiliar para o movimento da escova*) CadenciaFim AT %MX0.84: BOOL:=FALSE; (*Marca aux para a determinação da cadência*) Iniciar_MAC AT %MX0.91: BOOL:=FALSE; (*Inicio de ciclo automático*) Aliment_MAC AT %MX0.95: BOOL:=FALSE; (*Conversão das cartas em Manual*) Escova_MAC AT %MX0.96: BOOL:=FALSE; (*Conversão das cartas em Manual*) BicodeSopro_MAC AT %MX0.97: BOOL:=FALSE; (*Conversão das cartas em Manual*) ResetParcial_MAC AT %MX0.99: BOOL:=FALSE; (*Inicialização da contagem de peças*) CilInt_MAC AT %MX0.101: BOOL:=FALSE; (*Conversão da carta em manual*) CilExt_MAC AT %MX0.102: BOOL:=FALSE; (*Conversão da carta em manual*) Tapete_MAC AT %MX0.103: BOOL:=FALSE; (*Conversão da carta em manual*) Corte_MAC AT %MX0.105: BOOL:=FALSE; (*Conversão da carta em manual*) Chanfro_MAC AT %MX0.104: BOOL:=FALSE; (*Conversão da carta em manual*) Mem1 AT %MX0.111: BOOL:=FALSE; (*Seleccção da memória 1 no menu Memori*) Mem2 AT %MX0.112: BOOL:=FALSE; (*Seleccção da memória 2 no menu Memori*) Mem3 AT %MX0.113: BOOL:=FALSE; (*Seleccção da memória 3 no menu Memori*) Carrega_MAC AT %MX0.117: BOOL:=FALSE; (*Carrega os val. seleccionados*) Guarda_MAC AT %MX0.118: BOOL:=FALSE; (*Guarda os val. seleccionados*) Inicial_Menu AT %MX0.124: BOOL:=FALSE; (*Marca para aceder ao menu de configurações*) Memorias_Menu AT %MX0.125: BOOL:=FALSE; (*Marca para aceder ao menu de memórias*) ResetTotal_MAC AT %MX0.126: BOOL:=FALSE; (*Reset dos totais da máquina*) MES AT %IX1: BOOL:=FALSE; (*Máquina em serviço*) Aliment_BP2 AT %IX2: BOOL:=FALSE; (*Ent. do BP da alimentação*) PresenVaret_BQ10 AT %IX8: BOOL:=FALSE; (*Sensor de presença de vareta*) AliAvancado_BQ11 AT %IX9: BOOL:=FALSE; (*Cil. de alimentação avançado*) AliRecuado_BQ12 AT %IX10: BOOL:=FALSE; (*Ent. do BP da alimentação*) BFA AT %QX0: BOOL:=FALSE; (*Bom funcionamento do autómato*) Aliment_YV5 AT %QX5: BOOL:=FALSE; (*Saída para a válv. do cil. de alimentação*) Escova_YV6 AT %QX6: BOOL:=FALSE; (*Saída para a válv da escova*) BicodeSopro_YV7 AT %QX7: BOOL:=FALSE; (*Saída para a válv do bico de sopro*) Motores_KA11 AT %QX8: BOOL:=FALSE; (*Saída para autorização de mov. aos mot.*) END_VAR TASK Geral(SINGLE:=TRUE, INTERVAL:=0, PRIORITY:=31) PROGRAM Geral WITH Geral: scProgramType PROGRAM Alimentacao WITH Geral: scProgramType PROGRAM Automatico WITH Geral: scProgramType PROGRAM CartasAnalogicas WITH Geral: scProgramType PROGRAM Saidas WITH Geral: scProgramType PROGRAM MAC WITH Geral: scProgramType END_RESOURCE END_CONFIGURATION