logo
продукты
Случаи
Дом >

Xiamen ZhiCheng Automation Technology Co., Ltd Случаи

События
Свяжитесь мы
Miss. Andy
86-0592-5636807
Wechat +8618020763272
Контакт теперь
Последнее дело компании о Программирование Siemens SCL обновленная версия: 12 промышленных практических случаев

Программирование Siemens SCL обновленная версия: 12 промышленных практических случаев

12 Промышленные практические случаи (1-6) Случай 1: Управление пуском и остановкой двигателя Скл FUNCTION_BLOCK FB_MotorControl VAR_INPUT Кнопка запуска: BOOL; StopButton: BOOL; Сигнал перегрузки: BOOL; END_VAR VAR_OUTPUT Состояние запуска: BOOL; Показатель ошибки: BOOL; END_VAR Начинать. // Логика старта-стопа Если StartButton и не StopButton и не перегрузкиСигнал тогда RunningStatus:= TRUE; ELSIF Стойка или перегрузка Состояние выполнения:= FALSE; END_IF; // Показание неисправности Показатель неисправности:= Сигнал перегрузки; END_FUNCTION_BLOCK   Случай 2: Применение таймера Скл FUNCTION_BLOCK FB_DelayStart VAR_INPUT Сигнал старта: BOOL; DelayTime: TIME:= T#5S; END_VAR VAR_OUTPUT Выходный сигнал: BOOL; END_VAR VAR Задержка времени: ТОН; END_VAR Начинать. DelayTimer ((IN):= StartSignal, PT:= DelayTime); Выходный сигнал: = DelayTimer.Q; END_FUNCTION_BLOCK   Случай 3: Управление температурой PID Скл FUNCTION_BLOCK FB_TempControl VAR_INPUT Исходное значение: REAL; ProcessValue: REAL; END_VAR VAR_OUTPUT КонтрольВыход: REAL; END_VAR VAR Kp: REAL:= 2.0; Ки: REAL:= 0.05; Kd: REAL:= 0.5; IntegralTerm: REAL:= 0; Последнее ошибку: REAL:= 0; Таймер: ТОН; END_VAR Начинать. // Периодически (100 мс) Таймер ((IN:= НЕ Таймер.Q, PT:= T#100ms); Если Таймер.Q Тогда Ошибка VAR:= Установка точки - значение процесса; IntegralTerm:= IntegralTerm + ошибка; VAR DerivativeTerm := Ошибка - Последняя ошибка; LastError:= Ошибка; ControlOutput := Kp * Error + Ki * IntegralTerm + Kd * DerivativeTerm; ControlOutput:= LIMIT(0.0, ControlOutput, 100.0); Таймер ((IN):= FALSE); END_IF; END_FUNCTION_BLOCK Случай 4: Управление очередями на производственной линии Скл FUNCTION_BLOCK FB_ProductionQueue VAR_INPUT NewOrder: BOOL; OrderID: INT; Полный сигнал: BOOL; END_VAR VAR_OUTPUT Текущий порядок: INT; длина очереди: INT; END_VAR VAR OrderQuee: ARRAY[1..50] OF INT; Заголовок очереди: INT:= 1; Следующая очередь: INT:= 1; END_VAR Начинать. // Новый порядок очереди Если NewOrder и QueueLength < 50 OrderQueue[QueueTail] := OrderID; Чередовый хвост:= Чередовый хвост MOD 50 + 1; Длина очереди:= Длина очереди + 1; END_IF; // Завершен порядок очереди Если полный сигнал и длина очереди > 0 QueueHead:= QueueHead MOD 50 + 1; Длина очереди:= Длина очереди - 1; END_IF; // Текущий порядок Если длина очереди > 0 CurrentOrder := OrderQueue[QueueHead]; Еще Текущий порядок: = 0; END_IF; END_FUNCTION_BLOCK   Случай 5: Контроль блокировки предохранительных ворот Скл FUNCTION_BLOCK FB_SafetyGate VAR_INPUT Вход 1 закрыт, вход 2 закрыт: BOOL; EStopButton: BOOL; Кнопка перезагрузки: END_VAR VAR_OUTPUT Статус безопасности: BOOL; END_VAR VAR LockoutStatus: BOOL:= FALSE; Время блокировки: TON; END_VAR Начинать. // Безопасность VAR AllGatesClosed:= Gate1Closed И Gate2Closed; // Аварийная остановка высшего приоритета Если EStopButton тогда Статус безопасности:= FALSE; LockoutStatus:= TRUE; LockoutTimer ((IN):= TRUE, PT:= T#10S); ВРЕТА; END_IF; Отключи логику. Если ResetButton и LockoutStatus и LockoutTimer.Q тогда LockoutStatus:= FALSE; END_IF; // Нормальная работа Если нет, то отключитесь. Статус безопасности: = все ворота закрыты; END_IF;
2025-07-03
Подробнее
1
Карта сайта |  Политика уединения | Качество Китая хорошее Сенсор лазера больного Поставщик. © авторского права 2025 Xiamen ZhiCheng Automation Technology Co., Ltd . Все права защищены.