1 <?xml version='1.0' encoding='utf-8'?> |
|
2 <project xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201"> |
|
3 <fileHeader companyName="Unknown" productName="Generic PLC" productVersion="1" creationDateTime="2013-01-29T14:01:00" contentDescription="This example shows logging functionality in Beremiz. Here are shown two ways of logging: - from IEC PLC program; - from python extension. "/> |
|
4 <contentHeader name="Logging example" modificationDateTime="2018-09-26T13:10:14"> |
|
5 <coordinateInfo> |
|
6 <fbd> |
|
7 <scaling x="0" y="0"/> |
|
8 </fbd> |
|
9 <ld> |
|
10 <scaling x="0" y="0"/> |
|
11 </ld> |
|
12 <sfc> |
|
13 <scaling x="0" y="0"/> |
|
14 </sfc> |
|
15 </coordinateInfo> |
|
16 </contentHeader> |
|
17 <types> |
|
18 <dataTypes/> |
|
19 <pous> |
|
20 <pou name="program0" pouType="program"> |
|
21 <interface> |
|
22 <localVars> |
|
23 <variable name="beat"> |
|
24 <type> |
|
25 <BOOL/> |
|
26 </type> |
|
27 </variable> |
|
28 <variable name="count"> |
|
29 <type> |
|
30 <INT/> |
|
31 </type> |
|
32 </variable> |
|
33 <variable name="LOGGER0"> |
|
34 <type> |
|
35 <derived name="LOGGER"/> |
|
36 </type> |
|
37 </variable> |
|
38 <variable name="lvl"> |
|
39 <type> |
|
40 <derived name="LOGLEVEL"/> |
|
41 </type> |
|
42 <initialValue> |
|
43 <simpleValue value="INFO"/> |
|
44 </initialValue> |
|
45 </variable> |
|
46 <variable name="Timer"> |
|
47 <type> |
|
48 <derived name="TOF"/> |
|
49 </type> |
|
50 </variable> |
|
51 </localVars> |
|
52 </interface> |
|
53 <body> |
|
54 <FBD> |
|
55 <inVariable localId="2" height="30" width="218" executionOrderId="0" negated="false"> |
|
56 <position x="459" y="365"/> |
|
57 <connectionPointOut> |
|
58 <relPosition x="218" y="15"/> |
|
59 </connectionPointOut> |
|
60 <expression>'IEC side logging: beat #'</expression> |
|
61 </inVariable> |
|
62 <block localId="3" width="59" height="40" typeName="NOT" executionOrderId="0"> |
|
63 <position x="241" y="287"/> |
|
64 <inputVariables> |
|
65 <variable formalParameter="IN"> |
|
66 <connectionPointIn> |
|
67 <relPosition x="0" y="30"/> |
|
68 <connection refLocalId="14" formalParameter="Q"> |
|
69 <position x="241" y="317"/> |
|
70 <position x="197" y="317"/> |
|
71 </connection> |
|
72 </connectionPointIn> |
|
73 </variable> |
|
74 </inputVariables> |
|
75 <inOutVariables/> |
|
76 <outputVariables> |
|
77 <variable formalParameter="OUT"> |
|
78 <connectionPointOut> |
|
79 <relPosition x="59" y="30"/> |
|
80 </connectionPointOut> |
|
81 </variable> |
|
82 </outputVariables> |
|
83 </block> |
|
84 <inOutVariable localId="4" height="30" width="60" executionOrderId="0" negatedOut="false" negatedIn="false"> |
|
85 <position x="57" y="302"/> |
|
86 <connectionPointIn> |
|
87 <relPosition x="0" y="15"/> |
|
88 <connection refLocalId="3" formalParameter="OUT"> |
|
89 <position x="57" y="317"/> |
|
90 <position x="37" y="317"/> |
|
91 <position x="37" y="390"/> |
|
92 <position x="314" y="390"/> |
|
93 <position x="314" y="317"/> |
|
94 <position x="300" y="317"/> |
|
95 </connection> |
|
96 </connectionPointIn> |
|
97 <connectionPointOut> |
|
98 <relPosition x="60" y="15"/> |
|
99 </connectionPointOut> |
|
100 <expression>beat</expression> |
|
101 </inOutVariable> |
|
102 <block localId="5" width="68" height="98" typeName="ADD" executionOrderId="0"> |
|
103 <position x="463" y="403"/> |
|
104 <inputVariables> |
|
105 <variable formalParameter="IN1"> |
|
106 <connectionPointIn> |
|
107 <relPosition x="0" y="39"/> |
|
108 <connection refLocalId="10" formalParameter="OUT"> |
|
109 <position x="463" y="442"/> |
|
110 <position x="452" y="442"/> |
|
111 <position x="452" y="442"/> |
|
112 <position x="455" y="442"/> |
|
113 <position x="455" y="442"/> |
|
114 <position x="439" y="442"/> |
|
115 </connection> |
|
116 </connectionPointIn> |
|
117 </variable> |
|
118 <variable formalParameter="IN2"> |
|
119 <connectionPointIn> |
|
120 <relPosition x="0" y="78"/> |
|
121 <connection refLocalId="6"> |
|
122 <position x="463" y="481"/> |
|
123 <position x="438" y="481"/> |
|
124 </connection> |
|
125 </connectionPointIn> |
|
126 </variable> |
|
127 </inputVariables> |
|
128 <inOutVariables/> |
|
129 <outputVariables> |
|
130 <variable formalParameter="OUT"> |
|
131 <connectionPointOut> |
|
132 <relPosition x="68" y="39"/> |
|
133 </connectionPointOut> |
|
134 </variable> |
|
135 </outputVariables> |
|
136 </block> |
|
137 <inOutVariable localId="6" height="30" width="103" executionOrderId="0" negatedOut="false" negatedIn="false"> |
|
138 <position x="335" y="466"/> |
|
139 <connectionPointIn> |
|
140 <relPosition x="0" y="15"/> |
|
141 <connection refLocalId="5" formalParameter="OUT"> |
|
142 <position x="335" y="481"/> |
|
143 <position x="320" y="481"/> |
|
144 <position x="320" y="518"/> |
|
145 <position x="544" y="518"/> |
|
146 <position x="544" y="442"/> |
|
147 <position x="531" y="442"/> |
|
148 </connection> |
|
149 </connectionPointIn> |
|
150 <connectionPointOut> |
|
151 <relPosition x="103" y="15"/> |
|
152 </connectionPointOut> |
|
153 <expression>count</expression> |
|
154 </inOutVariable> |
|
155 <block localId="8" width="67" height="144" typeName="CONCAT" executionOrderId="0"> |
|
156 <position x="727" y="329"/> |
|
157 <inputVariables> |
|
158 <variable formalParameter="IN1"> |
|
159 <connectionPointIn> |
|
160 <relPosition x="0" y="51"/> |
|
161 <connection refLocalId="2"> |
|
162 <position x="727" y="380"/> |
|
163 <position x="717" y="380"/> |
|
164 <position x="717" y="380"/> |
|
165 <position x="677" y="380"/> |
|
166 </connection> |
|
167 </connectionPointIn> |
|
168 </variable> |
|
169 <variable formalParameter="IN2"> |
|
170 <connectionPointIn> |
|
171 <relPosition x="0" y="113"/> |
|
172 <connection refLocalId="9" formalParameter="OUT"> |
|
173 <position x="727" y="442"/> |
|
174 <position x="680" y="442"/> |
|
175 </connection> |
|
176 </connectionPointIn> |
|
177 </variable> |
|
178 </inputVariables> |
|
179 <inOutVariables/> |
|
180 <outputVariables> |
|
181 <variable formalParameter="OUT"> |
|
182 <connectionPointOut> |
|
183 <relPosition x="67" y="51"/> |
|
184 </connectionPointOut> |
|
185 </variable> |
|
186 </outputVariables> |
|
187 </block> |
|
188 <block localId="9" width="119" height="40" typeName="INT_TO_STRING" executionOrderId="0"> |
|
189 <position x="561" y="412"/> |
|
190 <inputVariables> |
|
191 <variable formalParameter="IN"> |
|
192 <connectionPointIn> |
|
193 <relPosition x="0" y="30"/> |
|
194 <connection refLocalId="5" formalParameter="OUT"> |
|
195 <position x="561" y="442"/> |
|
196 <position x="531" y="442"/> |
|
197 </connection> |
|
198 </connectionPointIn> |
|
199 </variable> |
|
200 </inputVariables> |
|
201 <inOutVariables/> |
|
202 <outputVariables> |
|
203 <variable formalParameter="OUT"> |
|
204 <connectionPointOut> |
|
205 <relPosition x="119" y="30"/> |
|
206 </connectionPointOut> |
|
207 </variable> |
|
208 </outputVariables> |
|
209 </block> |
|
210 <block localId="10" width="106" height="40" typeName="BOOL_TO_INT" executionOrderId="0"> |
|
211 <position x="333" y="412"/> |
|
212 <inputVariables> |
|
213 <variable formalParameter="IN" edge="rising"> |
|
214 <connectionPointIn> |
|
215 <relPosition x="0" y="30"/> |
|
216 <connection refLocalId="3" formalParameter="OUT"> |
|
217 <position x="333" y="442"/> |
|
218 <position x="314" y="442"/> |
|
219 <position x="314" y="317"/> |
|
220 <position x="300" y="317"/> |
|
221 </connection> |
|
222 </connectionPointIn> |
|
223 </variable> |
|
224 </inputVariables> |
|
225 <inOutVariables/> |
|
226 <outputVariables> |
|
227 <variable formalParameter="OUT"> |
|
228 <connectionPointOut> |
|
229 <relPosition x="106" y="30"/> |
|
230 </connectionPointOut> |
|
231 </variable> |
|
232 </outputVariables> |
|
233 </block> |
|
234 <block localId="11" width="65" height="209" typeName="LOGGER" instanceName="LOGGER0" executionOrderId="0"> |
|
235 <position x="907" y="266"/> |
|
236 <inputVariables> |
|
237 <variable formalParameter="TRIG"> |
|
238 <connectionPointIn> |
|
239 <relPosition x="0" y="51"/> |
|
240 <connection refLocalId="3" formalParameter="OUT"> |
|
241 <position x="907" y="317"/> |
|
242 <position x="300" y="317"/> |
|
243 </connection> |
|
244 </connectionPointIn> |
|
245 </variable> |
|
246 <variable formalParameter="MSG"> |
|
247 <connectionPointIn> |
|
248 <relPosition x="0" y="114"/> |
|
249 <connection refLocalId="8" formalParameter="OUT"> |
|
250 <position x="907" y="380"/> |
|
251 <position x="794" y="380"/> |
|
252 </connection> |
|
253 </connectionPointIn> |
|
254 </variable> |
|
255 <variable formalParameter="LEVEL"> |
|
256 <connectionPointIn> |
|
257 <relPosition x="0" y="177"/> |
|
258 <connection refLocalId="12"> |
|
259 <position x="907" y="443"/> |
|
260 <position x="880" y="443"/> |
|
261 </connection> |
|
262 </connectionPointIn> |
|
263 </variable> |
|
264 </inputVariables> |
|
265 <inOutVariables/> |
|
266 <outputVariables/> |
|
267 </block> |
|
268 <inVariable localId="12" height="30" width="79" executionOrderId="0" negated="false"> |
|
269 <position x="801" y="428"/> |
|
270 <connectionPointOut> |
|
271 <relPosition x="79" y="15"/> |
|
272 </connectionPointOut> |
|
273 <expression>lvl</expression> |
|
274 </inVariable> |
|
275 <block localId="14" typeName="TOF" instanceName="Timer" executionOrderId="0" height="98" width="47"> |
|
276 <position x="150" y="278"/> |
|
277 <inputVariables> |
|
278 <variable formalParameter="IN"> |
|
279 <connectionPointIn> |
|
280 <relPosition x="0" y="39"/> |
|
281 <connection refLocalId="4"> |
|
282 <position x="150" y="317"/> |
|
283 <position x="117" y="317"/> |
|
284 </connection> |
|
285 </connectionPointIn> |
|
286 </variable> |
|
287 <variable formalParameter="PT"> |
|
288 <connectionPointIn> |
|
289 <relPosition x="0" y="78"/> |
|
290 <connection refLocalId="1"> |
|
291 <position x="150" y="356"/> |
|
292 <position x="117" y="356"/> |
|
293 </connection> |
|
294 </connectionPointIn> |
|
295 </variable> |
|
296 </inputVariables> |
|
297 <inOutVariables/> |
|
298 <outputVariables> |
|
299 <variable formalParameter="Q"> |
|
300 <connectionPointOut> |
|
301 <relPosition x="47" y="39"/> |
|
302 </connectionPointOut> |
|
303 </variable> |
|
304 <variable formalParameter="ET"> |
|
305 <connectionPointOut> |
|
306 <relPosition x="47" y="78"/> |
|
307 </connectionPointOut> |
|
308 </variable> |
|
309 </outputVariables> |
|
310 </block> |
|
311 <inVariable localId="1" executionOrderId="0" height="30" width="61" negated="false"> |
|
312 <position x="56" y="341"/> |
|
313 <connectionPointOut> |
|
314 <relPosition x="61" y="15"/> |
|
315 </connectionPointOut> |
|
316 <expression>T#3s</expression> |
|
317 </inVariable> |
|
318 <comment localId="15" height="249" width="682"> |
|
319 <position x="19" y="8"/> |
|
320 <content> |
|
321 <xhtml:p><![CDATA[This example shows logging functionality in Beremiz. |
|
322 Here are shown two ways of logging: |
|
323 - from IEC PLC program; |
|
324 - from python extension. |
|
325 |
|
326 In IEC PLC program every third second (beat) new message is generated and put in PLC log. |
|
327 See function blocks below. |
|
328 |
|
329 Every 15 seconds status of PLC program is put in PLC log from python extension. |
|
330 For more information about logging from python look at 0.x: py_ext_0 implementation in project tree. |
|
331 ]]></xhtml:p> |
|
332 </content> |
|
333 </comment> |
|
334 </FBD> |
|
335 </body> |
|
336 </pou> |
|
337 </pous> |
|
338 </types> |
|
339 <instances> |
|
340 <configurations> |
|
341 <configuration name="config"> |
|
342 <resource name="resource1"> |
|
343 <task name="task0" priority="0" interval="T#100ms"> |
|
344 <pouInstance name="prg" typeName="program0"/> |
|
345 </task> |
|
346 </resource> |
|
347 </configuration> |
|
348 </configurations> |
|
349 </instances> |
|
350 </project> |
|