-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathFb2PosControl.SCL
More file actions
129 lines (112 loc) · 3.62 KB
/
Copy pathFb2PosControl.SCL
File metadata and controls
129 lines (112 loc) · 3.62 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
FUNCTION_BLOCK "Fb2PosControl"
TITLE = 'Ðåãóëÿòîð äâóõïîçèöèîííûé.'
{ S7_read_back := 'true' ;
S7_blockview := 'big' }
AUTHOR : VA
FAMILY : LIB_PLC
VERSION : '2.1'
VAR_INPUT // Âõîäíûå ïåðåìåííûå, ñîõðàíÿåìûå.
PV :REAL := 0.0; // Èçìåðåííîå çíà÷åíèå ðåãóëèðóåìîãî ïàðàìåòðà.
SP :REAL := 0.0; // Çàäàííîå çíà÷åíèå ðåãóëèðóåìîãî ïàðàìåòðà.
HYST :REAL := 5.0; // Ãèñòåðåçèñ > 0.
END_VAR
VAR_OUTPUT // Âûõîäíûå ïåðåìåííûå, ñîõðàíÿåìûå.
OP :BOOL := FALSE; // Âûõîä óïðàâëÿþùåãî ñèãíàëà.
END_VAR
VAR // Âíóòðåííèå ïåðåìåííûå, ñîõðàíÿåìûå.
ER :REAL := 0.0; // Îøèáêà ðåãóëèðîâàíèÿ.
END_VAR
BEGIN
// Ðåãóëÿòîð äâóõïîçèöèîííûé.
// Db2PosControl
// +---------------+
// | Fb2PosControl |
// ->-|PV OP|->-
// -|SP |
// -|HYST |
// +---------------+
// Îøèáêà ðåãóëèðîâàíèÿ.
ER := SP - PV;
// Ðåãóëÿòîð äâóõïîçèöèîííûé.
IF (ER >= HYST) THEN
OP:=TRUE;
END_IF;
IF (ER <= HYST * (-1.0)) THEN
OP := FALSE;
END_IF;
// Ïðèìåíåíèå.
//
// Äâóõïîçèöèîííûé ðåãóëÿòîð èñïîëüçóåòñÿ êàê ïðîñòåéøèé ðåãóëÿòîð òåìïåðàòóðû, äàâëåíèÿ, óðîâíÿ.
// Óñëîâíîå ãðàôè÷åñêîå îáîçíà÷åíèå.
//
// +---------------+
// | |
// | +--<--+-- |
// | | | |
// ER->-| v ^ |->-OP
// | | | |
// | --+-->--+ |
// | |
// +---------------+
// Ñòàòè÷åñêàÿ õàðàêòåðèñòèêà.
//
// OP
// ^
// |
// ***<***1***<******
// * | *
// v | ^
// * | *
// -ER <--******>***0***>***--> +ER
// | | |
// |<---->|<---->|
// HYST HYST
// Âðåìåííàÿ õàðàêòåðèñòèêà.
//
// ^ PV,SP
// | PV
// |----------*---------------*------
// | * * * * |
// | * * * * | SP + HYST
// | * * * |
// |======*=======*=======*========== SP
// | * * * |
// | * * * | SP - HYST
// | * * * |
// |--*---------------*--------------
// | *
// |*
// +-----------------------------------------> t[s]
//
// ^ OP
// |
// 1*********** *********
// | * * *
// 0----------*********-------***------------> t[s]
// Ñõåìà âêëþ÷åíèÿ.
//
// +---------------+
// | | Îáúåêò óïðàâëåíèÿ
// | +--<--+-- | +-----------+
// +---+ ER | | | | OP | K |
// SP-->--| + |-->--| v ^ |-->--| --------- |-->--+-->PV
// PV +--| - | | | | | | T * s + 1 | |
// | +---+ | --+-->--+ | +-----------+ |
// | | | |
// | +---------------+ |
// | |
// +----------------------------------------------------+
// @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