(*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 IO_TYPE_0 := 2 IO_RANGE_0 := 1 IO_MODULE_0 := 0,54,127,-123,127,-123,127,-123,127,-123,3,0,1,0,0,-123 IO_TYPE_1 := 3 IO_RANGE_1 := 1 IO_MODULE_1 := 0,-123,127,-123,127,-123,127,-123,127,-123,4,0,2,0,0,-123 IO_TYPE_2 := 4 IO_RANGE_2 := 2 IO_MODULE_2 := 0,-123,127,-123,100,0,15,17,1,0,4,0,2,0,0,0 IO_TYPE_3 := 4 IO_RANGE_3 := 2 IO_MODULE_3 := 0,0,0,0,0,0,0,0,0,0,4,0,2,0,0,0 IO_TYPE_4 := 4 IO_RANGE_4 := 2 IO_MODULE_4 := 0,0,-2,0,0,0,1,0,-61,54,0,0,0,0,0,-123 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 := 700 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 Codificacao VAR_EXTERNAL SentidoRotM2: BOOL:=FALSE; De601: DINT:=0; De603: DINT:=0; ON_M2: BOOL:=FALSE; ON_Geral: BOOL:=FALSE; SentidoRotM1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) ON_M1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) RPM_M1: DINT:=0; (*Activação manual do motor (sinal de entrada)*) RPM_M2: DINT:=0; (*Activação manual do motor (sinal de entrada)*) De306: DINT:=0; (*Activação manual do motor (sinal de entrada)*) De308: DINT:=0; (*Activação manual do motor (sinal de entrada)*) Sent_Rot_MAC_M1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) Sent_Rot_MAC_M2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) END_VAR 'LD' BODY WORKSPACE NETWORK_LIST_TYPE := NWTYPELD ; ACTIVE_NETWORK := 8 ; END_WORKSPACE NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_VARIN,,ON_Geral,15,2,17,4,); B(B_VAROUT,,D301,27,2,29,4,); B(B_F,BOOL_TO_INT,,17,1,27,4,); B(B_COMMENT,,neste programa são atribuidos os valores das variaveis a memorias internas do Plc para permitir a comunicação com o PC.,32,1,57,4,); 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,,ON_M1,15,2,17,4,); B(B_VAROUT,,D302,27,2,29,4,); B(B_F,BOOL_TO_INT,,17,1,27,4,); 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,,ON_M2,15,2,17,4,); B(B_VAROUT,,D303,27,2,29,4,); B(B_F,BOOL_TO_INT,,17,1,27,4,); 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,,SentidoRotM1,15,2,17,4,); B(B_VAROUT,,D304,27,2,29,4,); B(B_F,BOOL_TO_INT,,17,1,27,4,); 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,,SentidoRotM2,15,2,17,4,); B(B_VAROUT,,D305,27,2,29,4,); B(B_F,BOOL_TO_INT,,17,1,27,4,); 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_VARIN,,RPM_M1,16,3,18,5,); B(B_VAROUT,,De306,23,3,25,5,); B(B_F,MOVE,,18,2,23,5,); 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_VARIN,,RPM_M2,16,2,18,4,); B(B_F,MOVE,,18,1,23,4,); B(B_VAROUT,,De308,23,2,25,4,); 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_VARIN,,De601,14,2,16,4,); B(B_VAROUT,,RPM_M1,21,2,23,4,); B(B_F,MOVE,,16,1,21,4,); 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_VARIN,,De603,14,2,16,4,); B(B_VAROUT,,RPM_M2,21,2,23,4,); B(B_F,MOVE,,16,1,21,4,); L(1,0,1,6); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM PROGRAM Geral VAR_EXTERNAL ON_Geral: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) ON_SWI: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) 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,,ON_SWI,5,2,7,4,); B(B_COIL,,On_Geral,35,2,37,4,); B(B_COMMENT,,Activação de uma memoria de estado por um botão para que a maquina seja ligada.,39,1,57,4,); L(1,0,1,5); L(7,3,35,3); L(1,3,5,3); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM PROGRAM Motor1 VAR_EXTERNAL WDTErrorM1: BOOL:=FALSE; (*Variavel de erro na carta*) CartaProntaM1: BOOL:=FALSE; (*Indicação se carta pronta*) Def_Resol_1_M1: BOOL:=FALSE; (*Variavel para definição da resolução*) Def_Resol_2_M1: BOOL:=FALSE; (*Variavel para definição da resolução*) Def_Ten_Cor_3_M1: BOOL:=FALSE; (*Variavel para definição do tipo de sinal*) Valor_IN_M1: DINT:=0; (*Valor lido do canal*) Sair_Valor_An_M1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) Activ_Sai_Ana_M1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) SentidoRotM1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) TemC1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) TemN1: INT:=0; (*Activação manual do motor (sinal de entrada)*) TemS1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) VelDOW_MAC_M1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) VelUP_MAC_M1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) Sent_Rot_MAC_M1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) ON_M1: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) ON_Geral: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) ON_M1_SWI: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) RPM_M1: DINT:=0; (*Activação manual do motor (sinal de entrada)*) De6: DINT:=0; (*Activação manual do motor (sinal de entrada)*) 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,,WDTErrorM1,4,1,6,3,N); B(B_CONTACT,,CartaProntaM1,9,1,11,3,); B(B_CONTACT,,M9038,14,1,16,3,); B(B_COIL,,Def_Resol_1_M1,23,1,25,3,); B(B_COIL,,Def_Resol_2_M1,23,3,25,5,N); B(B_COIL,,Def_Ten_Cor_3_M1,23,5,25,7,N); B(B_COMMENT,,Definição da resolução a utilizar (4000) e activação do canal 3 para funcionamento em tensão,31,1,46,7,); L(1,2,4,2); L(1,0,1,8); L(6,2,9,2); L(11,2,14,2); L(18,2,18,4); L(18,4,23,4); L(18,4,18,6); L(18,6,23,6); L(18,2,23,2); L(16,2,18,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 22 ; NETWORK_BODY B(B_CONTACT,,WDTErrorM1,4,1,6,3,N); B(B_VARIN,,0,21,4,23,6,); B(B_VARIN,,1,21,5,23,7,); B(B_F,TOP_M,,23,0,29,7,); B(B_VARIN,,4,21,2,23,4,); B(B_VARIN,,16#0002,21,3,23,5,); B(B_COMMENT,,Activação do canal 3. ,31,2,45,6,); B(B_VARIN,,0,21,9,23,11,); B(B_VARIN,,16#0002,21,10,23,12,); B(B_VARIN,,5,21,11,23,13,); B(B_VARIN,,1,21,12,23,14,); B(B_F,TOP_M,,23,7,29,14,); B(B_VARIN,,4000,21,16,23,18,); B(B_VARIN,,16#0002,21,17,23,19,); B(B_VARIN,,4,21,18,23,20,); B(B_VARIN,,1,21,19,23,21,); B(B_F,TOP_M,,23,14,29,21,); B(B_CONTACT,,CartaProntaM1,11,1,13,3,); L(1,2,4,2); L(16,2,16,9); L(16,9,23,9); L(16,9,16,16); L(16,16,23,16); L(16,2,23,2); L(1,0,1,22); L(13,2,16,2); L(6,2,11,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 12 ; NETWORK_BODY B(B_CONTACT,,WDTErrorM1,6,3,8,5,N); B(B_CONTACT,,CartaProntaM1,13,3,15,5,); B(B_CONTACT,,Sair_Valor_An_M1,20,3,22,5,N); B(B_VARIN,,D4,26,4,28,6,); B(B_VARIN,,16#0002,26,5,28,7,); B(B_VARIN,,10,26,6,28,8,); B(B_VARIN,,1,26,7,28,9,); B(B_F,TOP_M,,28,2,34,9,); B(B_COIL,,Activ_Sai_Ana_M1,29,10,31,12,); B(B_COMMENT,,Configurações da carta analogica.,40,3,52,10,); L(15,4,20,4); L(8,4,13,4); L(1,4,6,4); L(23,4,23,11); L(23,11,29,11); L(23,4,28,4); L(22,4,23,4); L(1,0,1,12); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 5 ; NETWORK_BODY B(B_CONTACT,,Sent_Rot_MAC_M1,9,3,11,5,); B(B_COIL,,SentidoRotM1,32,3,34,5,); B(B_COMMENT,,Selecção do sentido de rotação do motor 1.,40,1,54,5,); L(11,4,32,4); L(2,4,9,4); L(1,4,2,4); 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_VARIN,,Valor_IN_M1,18,2,20,4,); B(B_VARIN,,De6,18,3,20,5,); B(B_VAROUT,,Sair_Valor_An_M1,25,2,27,4,); B(B_F,@NE,,20,1,25,5,); B(B_COMMENT,,Actualização do sinal de saida quando este é alterado. Verificação por comparação com uma memoria com o valor anterior,40,1,54,5,); L(1,0,1,6); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_CONTACT,,Sair_Valor_An_M1,6,2,8,4,); B(B_VARIN,,Valor_IN_M1,29,3,31,5,); B(B_VAROUT,,De6,38,3,40,5,); B(B_F,DMOVP_M,,31,1,38,5,); B(B_COMMENT,,Actualização da memoria que guarda o valor de saida para comparação.,42,1,55,6,); L(1,3,6,3); L(8,3,31,3); L(1,0,1,7); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_VARIN,,RPM_M1,33,3,35,5,); B(B_VARIN,,100,33,4,35,6,); B(B_VAROUT,,RPM_M1,41,3,43,5,); B(B_F,ADD_E-2,,35,1,41,6,); B(B_F,PLS_M,,24,0,30,4,); B(B_F,@LT-2,,13,0,18,4,); B(B_CONTACT,,VelUP_MAC_M1,20,1,22,3,); B(B_VARIN,,RPM_M1,11,1,13,3,); B(B_VARIN,,1401,11,2,13,4,); B(B_COMMENT,,Definicão dos incrementos de velocidade manipulados pela consola. Delimitação dos valores maximo e minimo.,47,1,58,6,); L(30,3,35,3); L(18,2,20,2); L(22,2,24,2); L(1,0,1,7); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_VARIN,,RPM_M1,33,3,35,5,); B(B_VARIN,,100,33,4,35,6,); B(B_VAROUT,,RPM_M1,41,3,43,5,); B(B_F,PLS_M,,24,0,30,4,); B(B_CONTACT,,VelDOW_MAC_M1,20,1,22,3,); B(B_VARIN,,RPM_M1,11,1,13,3,); B(B_VARIN,,99,11,2,13,4,); B(B_F,SUB_E,,35,1,41,6,); B(B_F,@GT-2,,13,0,18,4,); B(B_COMMENT,,Definicão dos decrementos de velocidade manipulados pela consola. Delimitação dos valores maximo e minimo.,47,1,58,6,); L(30,3,35,3); L(22,2,24,2); L(18,2,20,2); L(1,0,1,7); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,ON_M1_SWI,5,2,7,4,); B(B_COIL,,ON_M1,35,2,37,4,); B(B_CONTACT,,ON_Geral,14,2,16,4,); B(B_COMMENT,,Activação do motor 1 se a maquina estiver ligada.,41,1,57,5,); L(1,0,1,6); L(16,3,35,3); L(7,3,14,3); L(1,3,5,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_VARIN,,15,22,4,24,6,); B(B_F,@DIV,,24,2,29,6,); B(B_F,@MUL-2,,14,2,19,6,); B(B_VARIN,,40,12,4,14,6,); B(B_VAROUT,,Valor_IN_M1,29,3,31,5,); B(B_VARIN,,RPM_M1,12,3,14,5,); B(B_COMMENT,,Converção da velocidade de rotação para o sinal emitido pela carta analogica aos inverters que controlam o motor. ,41,1,58,6,); L(1,0,1,7); L(19,4,24,4); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM PROGRAM Motor2 VAR_EXTERNAL WDTErrorM2: BOOL:=FALSE; (*Variavel de erro na carta*) CartaProntaM2: BOOL:=FALSE; (*Indicação se carta pronta*) Def_Resol_1_M2: BOOL:=FALSE; (*Variavel para definição da resolução*) Def_Resol_2_M2: BOOL:=FALSE; (*Variavel para definição da resolução*) Def_Ten_Cor_3_M2: BOOL:=FALSE; (*Variavel para definição do tipo de sinal*) Valor_IN_M2: DINT:=0; (*Valor lido do canal*) Sair_Valor_An_M2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) Activ_Sai_Ana_M2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) SentidoRotM2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) TemC2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) TemN2: INT:=0; (*Activação manual do motor (sinal de entrada)*) TemS2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) Sent_Rot_MAC_M2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) VelUP_MAC_M2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) VelDOW_MAC_M2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) ON_M2: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) ON_Geral: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) ON_M2_SWI: BOOL:=FALSE; (*Activação manual do motor (sinal de entrada)*) RPM_M2: DINT:=0; (*Activação manual do motor (sinal de entrada)*) De7: DINT:=0; (*Activação manual do motor (sinal de entrada)*) 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,,WDTErrorM2,4,1,6,3,N); B(B_CONTACT,,CartaProntaM2,9,1,11,3,); B(B_CONTACT,,M9038,14,1,16,3,); B(B_COIL,,Def_Resol_1_M2,23,1,25,3,); B(B_COIL,,Def_Resol_2_M2,23,3,25,5,N); B(B_COIL,,Def_Ten_Cor_3_M2,23,5,25,7,N); B(B_COMMENT,,Este programa e em tudo igual ao definido para o motor 1 sendo agora referente ao controlo do motor dois.,32,1,51,6,); L(1,2,4,2); L(1,0,1,8); L(6,2,9,2); L(11,2,14,2); L(18,2,18,4); L(18,4,23,4); L(18,4,18,6); L(18,6,23,6); L(18,2,23,2); L(16,2,18,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 21 ; NETWORK_BODY B(B_CONTACT,,WDTErrorM2,4,1,6,3,N); B(B_CONTACT,,CartaProntaM2,9,1,11,3,); B(B_VARIN,,0,21,4,23,6,); B(B_VARIN,,1,21,5,23,7,); B(B_F,TOP_M,,23,0,29,7,); B(B_VARIN,,4,21,2,23,4,); B(B_VARIN,,16#0006,21,3,23,5,); B(B_VARIN,,0,21,9,23,11,); B(B_VARIN,,16#0006,21,10,23,12,); B(B_VARIN,,5,21,11,23,13,); B(B_VARIN,,1,21,12,23,14,); B(B_F,TOP_M,,23,7,29,14,); B(B_VARIN,,4000,21,16,23,18,); B(B_VARIN,,16#0006,21,17,23,19,); B(B_VARIN,,4,21,18,23,20,); B(B_VARIN,,1,21,19,23,21,); B(B_F,TOP_M,,23,14,29,21,); L(1,2,4,2); L(6,2,9,2); L(13,2,23,2); L(11,2,13,2); L(1,0,1,21); L(16,2,16,9); L(16,9,23,9); L(16,9,16,16); L(16,16,23,16); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 16 ; NETWORK_BODY B(B_CONTACT,,WDTErrorM2,6,3,8,5,N); B(B_CONTACT,,CartaProntaM2,13,3,15,5,); B(B_CONTACT,,Sair_Valor_An_M2,20,3,22,5,N); B(B_VARIN,,D6,26,4,28,6,); B(B_VARIN,,16#0006,26,5,28,7,); B(B_VARIN,,10,26,6,28,8,); B(B_VARIN,,1,26,7,28,9,); B(B_F,TOP_M,,28,2,34,9,); B(B_COIL,,Activ_Sai_Ana_M2,29,10,31,12,); L(1,0,1,16); L(15,4,20,4); L(8,4,13,4); L(1,4,6,4); L(23,4,23,11); L(23,11,29,11); L(23,4,28,4); L(22,4,23,4); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 9 ; NETWORK_BODY B(B_CONTACT,,Sent_Rot_MAC_M2,8,5,10,7,); B(B_COIL,,SentidoRotM2,31,5,33,7,); L(10,6,31,6); L(1,6,8,6); L(1,0,1,9); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_VARIN,,Valor_IN_M2,18,2,20,4,); B(B_VARIN,,De7,18,3,20,5,); B(B_VAROUT,,Sair_Valor_An_M2,25,2,27,4,); B(B_F,@NE,,20,1,25,5,); L(1,0,1,7); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_CONTACT,,Sair_Valor_An_M2,6,2,8,4,); B(B_VARIN,,Valor_IN_M2,29,3,31,5,); B(B_VAROUT,,De7,38,3,40,5,); B(B_F,DMOVP_M,,31,1,38,5,); L(1,3,6,3); L(8,3,31,3); L(1,0,1,7); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 8 ; NETWORK_BODY B(B_VARIN,,RPM_M2,33,3,35,5,); B(B_VARIN,,100,33,4,35,6,); B(B_VAROUT,,RPM_M2,41,3,43,5,); B(B_F,ADD_E-2,,35,1,41,6,); B(B_F,PLS_M,,24,0,30,4,); B(B_F,@LT-2,,13,0,18,4,); B(B_CONTACT,,VelUP_MAC_M2,20,1,22,3,); B(B_VARIN,,RPM_M2,11,1,13,3,); B(B_VARIN,,1401,11,2,13,4,); L(30,3,35,3); L(18,2,20,2); L(22,2,24,2); L(1,0,1,8); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 8 ; NETWORK_BODY B(B_VARIN,,RPM_M2,33,3,35,5,); B(B_VARIN,,100,33,4,35,6,); B(B_VAROUT,,RPM_M2,41,3,43,5,); B(B_F,PLS_M,,24,0,30,4,); B(B_CONTACT,,VelDOW_MAC_M2,20,1,22,3,); B(B_VARIN,,RPM_M2,11,1,13,3,); B(B_VARIN,,99,11,2,13,4,); B(B_F,SUB_E,,35,1,41,6,); B(B_F,@GT-2,,13,0,18,4,); L(30,3,35,3); L(22,2,24,2); L(1,0,1,8); L(18,2,20,2); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 6 ; NETWORK_BODY B(B_CONTACT,,ON_M2_SWI,5,2,7,4,); B(B_COIL,,ON_M2,35,2,37,4,); B(B_CONTACT,,ON_Geral,14,2,16,4,); L(1,0,1,6); L(16,3,35,3); L(7,3,14,3); L(1,3,5,3); END_NETWORK_BODY END_NET_WORK NET_WORK NETWORK_TYPE := NWTYPELD ; NETWORK_LABEL := ; NETWORK_TITLE := ; NETWORK_HEIGHT := 7 ; NETWORK_BODY B(B_VARIN,,15,24,4,26,6,); B(B_F,@DIV,,26,2,31,6,); B(B_F,@MUL-2,,16,2,21,6,); B(B_VARIN,,40,14,4,16,6,); B(B_VAROUT,,Valor_IN_M2,31,3,33,5,); B(B_VARIN,,RPM_M2,14,3,16,5,); L(1,0,1,7); L(21,4,26,4); END_NETWORK_BODY END_NET_WORK END_BODY END_PROGRAM CONFIGURATION scConfiguration RESOURCE scResource ON scResourceType VAR_GLOBAL Def_Ten_Cor_1_M1 AT %QX40: BOOL:=FALSE; (*Variavel de configuração da carta analogica1*) Def_Ten_Cor_1_M2 AT %QX104: BOOL:=FALSE; (*Variavel de configuração da carta analogica2*) De8 AT %MD0.18: DINT:=0; (*Variavel auxiliar*) WDTErrorM1 AT %IX32: BOOL:=FALSE; (*Variavel de erro da carta analogica1*) WDTErrorM2 AT %IX96: BOOL:=FALSE; (*Variavel de erro da carta analogica2*) CartaProntaM1 AT %IX33: BOOL:=FALSE; (*Variavel de estado da carta analogica1*) CartaProntaM2 AT %IX97: BOOL:=FALSE; (*Variavel de estado da carta analogica2*) Def_Resol_1_M1 AT %QX56: BOOL:=FALSE; (*Variavel de configuração da carta analogica1*) Def_Resol_1_M2 AT %QX57: BOOL:=FALSE; (*Variavel de configuração da carta analogica2*) Def_Resol_2_M1 AT %QX120: BOOL:=FALSE; (*Variavel de configuração da carta analogica1*) Def_Resol_2_M2 AT %QX121: BOOL:=FALSE; (*Variavel de configuração da carta analogica2*) Def_Ten_Cor_3_M1 AT %QX60: BOOL:=FALSE; (*Variavel de configuração da carta analogica1*) Def_Ten_Cor_3_M2 AT %QX124: BOOL:=FALSE; (*Variavel de configuração da carta analogica2*) Valor_IN_M1 AT %MD0.4: DINT:=0; (*Valor de entrada para a carta analogica 1*) Valor_IN_M2 AT %MD0.6: DINT:=0; (*Valor de entrada para a carta analogica 2*) Sair_Valor_An_M1 AT %MX0.100: BOOL:=FALSE; (*Variavel auxiliar*) Sair_Valor_An_M2 AT %MX0.101: BOOL:=FALSE; (*Variavel auxiliar*) Activ_Sai_Ana_M1 AT %QX48: BOOL:=FALSE; (*Variavel auxiliar*) Activ_Sai_Ana_M2 AT %QX112: BOOL:=FALSE; (*Variavel auxiliar*) SentidoRotM1 AT %QX16: BOOL:=FALSE; (*Selecção do sentido de rotação do motor 1*) SentidoRotM2 AT %QX17: BOOL:=FALSE; (*Selecção do sentido de rotação do motor 2*) TemC1 AT %MX5.1: BOOL:=FALSE; (*Variavel de temporizador*) TemN1 AT %MW3.1: INT:=0; (*Variavel de temporizador*) TemC2 AT %MX5.2: BOOL:=FALSE; (*Variavel de temporizador*) TemN2 AT %MW3.2: INT:=0; (*Variavel de temporizador*) TemS1 AT %MX3.1: BOOL:=FALSE; (*Variavel de temporizador*) TemS2 AT %MX3.2: BOOL:=FALSE; (*Variavel de temporizador*) Sent_Rot_MAC_M1 AT %MX0.120: BOOL:=FALSE; (*Variavel auxiliar para operações com a consola*) Sent_Rot_MAC_M2 AT %MX0.121: BOOL:=FALSE; (*Variavel auxiliar para operações com a consola*) VelUP_MAC_M1 AT %MX0.122: BOOL:=FALSE; (*Variavel auxiliar para operações com a consola*) VelUP_MAC_M2 AT %MX0.123: BOOL:=FALSE; (*Variavel auxiliar para operações com a consola*) VelDOW_MAC_M1 AT %MX0.124: BOOL:=FALSE; (*Variavel auxiliar para operações com a consola*) VelDOW_MAC_M2 AT %MX0.125: BOOL:=FALSE; (*Variavel auxiliar para operações com a consola*) ON_M1 AT %QX18: BOOL:=FALSE; (*Ligar motor 1 (saida)*) ON_M2 AT %QX19: BOOL:=FALSE; (*Ligar motor 2 (saida)*) ON_Geral AT %QX20: BOOL:=FALSE; (*Ligar geral (saida)*) ON_M1_SWI AT %IX1: BOOL:=FALSE; (*Ligar motor 1*) ON_M2_SWI AT %IX2: BOOL:=FALSE; (*Ligar motor 2*) ON_SWI AT %IX0: BOOL:=FALSE; (*Ligar geral*) RPM_M1 AT %MD0.8: DINT:=0; (*Variavel auxiliar *) RPM_M2 AT %MD0.10: DINT:=0; (*Variavel auxiliar *) De6 AT %MW0.12: DINT:=0; (*Variavel auxiliar *) De7 AT %MW0.14: DINT:=0; (*Variavel auxiliar *) De306 AT %MD0.306: DINT:=0; (*Variavel auxiliar *) De308 AT %MD0.308: DINT:=0; (*Variavel auxiliar *) De601 AT %MD0.601: DINT:=0; (*Variavel auxiliar *) De603 AT %MD0.603: DINT:=0; (*Variavel auxiliar *) END_VAR TASK MAIN_LD(SINGLE:=TRUE, INTERVAL:=0, PRIORITY:=31) PROGRAM Motor1 WITH MAIN_LD: scProgramType PROGRAM Motor2 WITH MAIN_LD: scProgramType PROGRAM Codificacao WITH MAIN_LD: scProgramType PROGRAM Geral WITH MAIN_LD: scProgramType END_RESOURCE END_CONFIGURATION