-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathFbTaskCyclic.SCL
More file actions
98 lines (87 loc) · 4.29 KB
/
Copy pathFbTaskCyclic.SCL
File metadata and controls
98 lines (87 loc) · 4.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
FUNCTION_BLOCK "FbTaskCyclic"
TITLE = 'Задача вызывается циклически.'
{ S7_read_back := 'true' ;
S7_blockview := 'big' }
AUTHOR : VA
FAMILY : LIB_PLC
VERSION : '2.1'
VAR_INPUT // Входные переменные, не сохраняемые.
Ts_ms :DINT := 100 ; // Шаг дискретизации по времени [мс].
Reset :BOOL := FALSE; // Сброс при перезагрузке.
END_VAR
VAR_OUTPUT // Выходные переменные, не сохраняемые.
END_VAR
VAR // Внутренние переменные, сохраняемые.
Ts :REAL := 0.1; // Шаг дискретизации по времени [с].
END_VAR
BEGIN
// Задача вызывается циклически.
// DbTaskCyclic
// +--------------+
// | FbTaskCyclic |
// ->-|Ts_ms |
// ->-|Reset |
// +--------------+
//---------------------------------------------------------------------------------------------------------
// Шаг дискретизации по времени [с].
Ts := DINT_TO_REAL(Ts_ms) * 0.001;
//---------------------------------------------------------------------------------------------------------
// 1PC1 ПИД-регулятор давления.
// Db1PC1
// +---------------------------------+
// | Fb1PC1 |
// ->-|ADC_Pressure DAC_Frequency|->-
// -|RemoteStartButton MotorOn|-
// -|RemoteStopButton ContactorOn|-
// -|VoltageOk Error|-
// -|DriveOk |
// -|ContactorOk |
// -|InterlockOn |
// -|GroupStart |
// -|GroupStop |
// -|Ts_ms |
// -|Reset |
// +---------------------------------+
// ^
// |
// v
// +---------------------------------+
// | |
// | Db1PC1Hmi |
// | |
// | SCADA / HMI interface |
// | |
// +---------------------------------+
// Входы выходы ПЛК Di Do Ai Ao подключаем здесь.
//Db1PC1.SensorPressure := Ai1PC1PT ; // Датчик давления 0...27648[АЦП].
Db1PC1.ADC_Pressure := Db1PC1.DAC_Frequency; // Датчик давления 0...27648[АЦП].
Db1PC1.RemoteStartButton := TRUE ; // Кнопка без фиксации NO "ПУСК" на пульте местного управления.
Db1PC1.RemoteStopButton := TRUE ; // Кнопка без фиксации NC "СТОП" на пульте местного управления.
Db1PC1.VoltageOk := TRUE ; // Схема собрана (вводной автомат 380VAC включен).
Db1PC1.DriveOk := TRUE ; // Частотный привод: Готовность к работе (нет ошибок).
//Db1PC1.ContactorOk := TRUE ; // Контактор включился NO контакт.
Db1PC1.ContactorOk := Db1PC1.ContactorOn ; // Контактор включился NO контакт.
Db1PC1.InterlockOn := FALSE ; // Включена технологическая блокировка регулятора.
Db1PC1.GroupStart := FALSE ; // Групповой пуск (подать импульс).
Db1PC1.GroupStop := FALSE ; // Групповой стоп (подать импульс).
Db1PC1.Ts_ms := Ts_ms ; // Шаг дискретизации по времени [мс].
Db1PC1.Reset := Reset ; // Сброс при перезагрузке.
Fb1PC1.Db1PC1() ; // 1PC1 ПИД- регулятор давления.
//Ao1PC1FR := Db1PC1.DAC_Frequency; // Частотный привод: Сигнал задания частоты 0...27648[ЦАП].
// := Db1PC1.MotorOn ; // Частотный привод: Включить привод.
// := Db1PC1.ContactorOn ; // Включить контактор между частотным приводом и двигателем.
// := Db1PC1.Error ; // Флаг ошибки.
// @COPYLEFT ALL WRONGS RESERVED :)
// Author: VA
// Contacts: DIY.PLC.314@gmail.com
// Date start LIB_PLC: 2014
// License: GNU GPL-2.0-or-later
// https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
// https://www.youtube.com/watch?v=n1F_MfLRlX0
// https://www.youtube.com/@DIY_PLC
// https://github.com/DIYPLC/LIB_PLC
// https://oshwlab.com/diy.plc.314/PLC_HW1_SW1
// https://3dtoday.ru/3d-models/mechanical-parts/body/korpus-na-din-reiku
// https://t.me/DIY_PLC
// https://drive.google.com/drive/folders/16GDX0i07rwDrl_oPzL-lQAqMiAz3ouJV?usp=sharing
END_FUNCTION_BLOCK