logo
produtos
Casos
Casa >

Xiamen ZhiCheng Automation Technology Co., Ltd Casos

Eventos
Contacte-nos
Miss. Andy
86-0592-5636807
Wechat +8618020763272
Contato agora
Último caso da empresa sobre Siemens SCL Programming Versão atualizada: 12 casos práticos industriais

Siemens SCL Programming Versão atualizada: 12 casos práticos industriais

12 Casos práticos industriais (1-6) Caso 1: Controle de arranque-parada do motor - Não. FUNÇÃO_BLOCO FB_MotorControl VAR_INPUT StartButton: BOOL; StopButton: BOOL; Sinalização de sobrecarga: BOOL; END_VAR VAR_OUTPUT Execução Status: BOOL; Indicador de falha: BOOL END_VAR Começar. // Logic de Paragem e Iniciação Se o botão de arranque e não o botão de parada e não o sinal de sobrecarga, então RunningStatus:= TRUE; ELSIF StopButton OR OverloadSignal THEN RunningStatus:= FALSO; END_IF; Indicação de falha. Indicador de falha: = sinal de sobrecarga; END_FUNCTION_BLOCK   Caso 2: Aplicação de temporizadores - Não. FUNÇÃO_BLOCO FB_DelayStart VAR_INPUT StartSignal: BOOL; Tempo de atraso: TEMPO: = T#5S; END_VAR VAR_OUTPUT OutputSignal: BOOL; END_VAR VAR Tempo de atraso: TON; END_VAR Começar. O número de horas de funcionamento é o seguinte: OutputSignal := DelayTimer.Q; END_FUNCTION_BLOCK   Caso 3: Controle de temperatura PID - Não. FUNCTION_BLOCK FB_TempControl VAR_INPUT Ponto de referência: REAL; ProcessValue: REAL; END_VAR VAR_OUTPUT ControlOutput: REAL; END_VAR VAR Kp: REAL:= 2.0; Ki: REAL:= 0.05; Kd: REAL:= 0.5; IntegralTerm: REAL:= 0; LastError: REAL := 0; Temporiador: TON; END_VAR Começar. // Execute periodicamente (100ms) A duração do tempo de ensaio deve ser determinada em conformidade com o ponto 6.1. Se o Timer.Q Então Erro VAR:= Ponto de fixação - ProcessValue; IntegralTerm:= IntegralTerm + Erro; VAR DerivativeTerm := Erro - LastError; LastError:= Erro; ControlOutput := Kp * Error + Ki * IntegralTerm + Kd * DerivativeTerm; ControlOutput:= LIMIT(0.0, ControlOutput, 100.0); Aponta-tempo ((IN):= FALSO); END_IF; END_FUNCTION_BLOCK Caso 4: Gestão de filas de produção - Não. FUNÇÃO_BLOCO FB_Cue de produção VAR_INPUT NewOrder: BOOL; OrderID: INT; CompleteSignal: BOOL; END_VAR VAR_OUTPUT CurrentOrder: INT; Duração da fila: INT; END_VAR VAR Lista de ordem: ARRAY[1..50] OF INT; Cabeça de fila: INT:= 1; QueueTail: INT:= 1; END_VAR Começar. - Nova fila de encomendas. IF NewOrder AND QueueLength < 50 THEN OrderQueue[QueueTail] := OrderID; QueueTail:= QueueTail MOD 50 + 1; QueueLength := QueueLength + 1; END_IF; // Completada a fila de encomendas Se CompleteSignal AND QueueLength > 0 THEN Cabeça de fila:= Cabeça de fila MOD 50 + 1; Duração da fila: = Duração da fila - 1; END_IF; - Ordem atual. IF QueueLength > 0 THEN CurrentOrder := OrderQueue[QueueHead]; Outro. Ordem corrente: = 0; END_IF; END_FUNCTION_BLOCK   Caso 5: Controle de bloqueio do portão de segurança - Não. FUNÇÃO_BLOCO FB_SafetyGate VAR_INPUT Portão 1 fechado, Portão 2 fechado: BOOL; EStopButton: BOOL; ResetButton: BOOL; END_VAR VAR_OUTPUT Estado de segurança: BOOL; END_VAR VAR LockoutStatus: BOOL:= FALSO; Tempo de bloqueio: TON; END_VAR Começar. - Condição de segurança. VAR AllGatesClosed:= Gate1Closed AND Gate2Closed; Paragem de emergência, prioridade máxima. Se EStopButton então Estado de segurança: = FALSO; LockoutStatus:= Verdadeiro; LockingTimer ((IN):= TRUE, PT:= T#10S); RETORNO; END_IF; - Desbloqueia a lógica. Se ResetButton E LocalizaçãoStatus E LocalizaçãoTimer.Q THEN LockoutStatus:= FALSO; END_IF; - Função normal. Se NÃO, LOCKOUT, então. Estado de Segurança: END_IF;
2025-07-03
Leia mais
1
Mapa do Site |  Política de privacidade | Boa qualidade de China Sensor de laser doente Fornecedor. © de Copyright 2025 Xiamen ZhiCheng Automation Technology Co., Ltd . Todos os direitos reservados.