Vandaag heb ik de tijd genomen om mijn testopstelling te herbouwen voor het testen van het RS485 sensornetwerk en de interactie met DMX.
Vandaag een bestelling geplaatst voor een devkit met een ATTiny3216 reeds op gemonteerd. Deze beschikt reeds over een onboard UART zodat er in geen bijkomende RS485 chip moet worden gebruikt zoals bij de Tiny85.MichVw schreef op woensdag 19 februari 2020 @ 17:25:
[...]
Ik zie niet in waarom niet, die ATtiny zal dan gewoon meer modbus registers hebben die de PLC kan uitlezen..
Interresant! Ik zit helaas nog niet zover op het vlak van de microcontroller voor het modbus netwerk als ik zelf zou willen.. vanwaar hebje die devkit besteld?Kanze schreef op zaterdag 22 februari 2020 @ 23:56:
[...]
Vandaag een bestelling geplaatst voor een devkit met een ATTiny3216 reeds op gemonteerd. Deze beschikt reeds over een onboard UART zodat er in geen bijkomende RS485 chip moet worden gebruikt zoals bij de Tiny85.
Voor mensen die kijken naar de Tinyxx16 serie van chips nog de waarschuwing dat deze een nieuwe interface gebruiken om geprogrammeerd te worden. Gelukkig is al werk verzet en bestaat een library voor je Arduino om de nieuwere attiny chips te programmeren over hun UPDI interface.
Terwijl dat in de post zit is de volgende stap om mijn 750-652 te laten communiceren met een DMX302. Dan weliswaar met DMX als link layer bovenop RS485 maar het gaat in deze hoofdzakelijk over het testen van de opzet van de onderliggende RS485 physical layer.
Wie eens een weekend wil verliezen raad ik het webportaal van Texas Instruments aan. Voor dit soort zaken is dat een wormhole waar je helemaal kan invallen.
http://www.ti.com/lit/an/slla272c/slla272c.pdf
https://www.renesas.com/e...-transceiver-tutorial.pdf
https://www.ccontrols.com/pdf/ExtV1N1.pdf
https://www.tindie.com/pr...board-arduino-compatible/MichVw schreef op zondag 23 februari 2020 @ 08:06:
[...]
Interresant! Ik zit helaas nog niet zover op het vlak van de microcontroller voor het modbus netwerk als ik zelf zou willen.. vanwaar hebje die devkit besteld?
Ik volg je in die roadmap 😁. Ik denk niet dat er iets off-the-shelf bestaat en betwijfel ook of dat een "probleem" is. Als je voor custom PCB gaat kan je eventueel werken met JST connectoren (of andere) om de sensoren en microcontroller los te koppelen van elkaar.. kan je de PCB hergebruiken voor meerdere doeleinden (bv stand waterput, waterlekken opsporen, waterverbruik etc...)Kanze schreef op zondag 23 februari 2020 @ 09:15:
[...]
https://www.tindie.com/pr...board-arduino-compatible/
Deze devkit is ontworpen door dezelfde persoon die de UPDI library heeft geschreven voor Arduino.
Mijn roadmap voor dit onderdeel ziet er zo uit;Als iemand weet heeft van een off-the-shelf oplossing die alle bovenstaande vakjes aanvinkt én over RS485 kan communiceren lees ik het ook graag.
- Arduino UNO aansluiten als UPDI programmer via de bovengenoemde library
- MODBUS RTU over RS485 communicatie opzetten tussen de Tiny3216 UART en een onboard serial interface op de PFC200 ofwel via 750-652
- Uitzoeken welke sensors kunnen worden aangesloten op de Tiny3216. De bedoeling is temperatuur, douwpunt, lichtsterkte, luchtdruk, en infrarood beweging, te kunnen aansluiten
- Het einddoel is dat dit geheel kan worden ingebouwd in een standaard inbouwpotje in de muur als een sensorkit. Daarvoor zal dan wel een custom PCB moeten worden ontwikkeld maar dat is ook niet echt een probleem
@Femme , ik ben er net ook in geslaagd om een hoop data uit te lezen via een Eastron energie meter.Femme schreef op dinsdag 17 september 2019 @ 12:21:
[...]
Ik heb zelf afgelopen zomer mijn meterkast een upgrade gegeven (in verband met de komst van 24 kWp aan PV-panelen) en daarbij alle groepen meetbaar gemaakt met behulp van Eastron SDM630MCT-2L energiemeters. Dat is een variant die twee 3-fase groepen meet met behulp van externe current transformers. Die CT's heb ik met behulp van een zelf geprint bracket geplaatst tussen de klemmenstrook waar de drie fases en nul op worden verdeeld vanaf de hoofdschakelaar naar de aardlekautomaten.
[Afbeelding: Brackets voor ct's]
Hier waren ze half verwerkt in de meterkast:
[Afbeelding: Nieuwe meterkast]
Ik heb een module gemaakt om Eastron-meters te integeren in IP-Symcon. De module maakt automatisch de benodigde variabelen aan (een stuk of 50 bij een 3-fase meter), voert modbus requests waarbij ik prioriteit kan geven aan bepaalde metrics zodat die vaker worden uitgelezen. Er zit ook nog een scheduler achter die prioriteit kan geven aan bepaalde meters op dezelfde bus zodat die relatief vaker worden uitgelezen. Op die manier kan ik met 14 3-fase meters op één bus bijna elke seconde de stroomsterkte en het vermogen uitlezen van de meter op de hoofdaansluiting terwijl alle andere meters ook nog regelmatig worden uitgelezen.
Dat zou snel genoeg moeten zijn om later nog wat slimme loadbalancing te kunnen doen op een laadpaal.
Ik lag alles naar Symcon die een eigen data store heeft. Van daaruit gaat het voor visualisatie direct naar Grafana om grafiekjes zoals de onderstaande te maken. Hiervoor heb ik een simple Json datasource voor Grafana geïmplementeerd in een module voor IP-Symcon. Het voordeel van deze oplossing voor mij is dat ik maar van twee services afhankelijk ben (Symcon en Grafana, die op hetzelfde machientje draaien).
[Afbeelding: Opwek en export 25 augustus]
Wat betreft je wens om iets krachtigers dan een single board computer te gebruiken: er zijn tegenwoordig echt leuke bordjes met goede performance en veel mogelijkheden. Zo heb ik nu thuis een Khadas VIM3 liggen die net zo compact is als een RPi, maar wel een hexacore heeft (4x A73 op 2,2GHz en 2x A53 op 1,8GHz) met 4GB RAM, 32GB eMMC geheugen en een m.2-slot voor een ssd. Dus snel, zuinig en betrouwbare opslag.
Hier is een stuk json dat ik gebruik als config van de modbusadressen voor m'n SDM630-module voor IP-Symcon:MichVw schreef op maandag 24 februari 2020 @ 17:49:
[...]
@Femme , ik ben er net ook in geslaagd om een hoop data uit te lezen via een Eastron energie meter.
Welke waarden log jij allemaal bij? Het zijn er echt wel een hoop (https://bg-etech.de/download/manual/SDM220Register.pdf, pagina 2). Ik vraag me af wat wat precies allemaal is, zeker alsje ook wilt gaan meten hoeveel je zonnepanelen enzo opbrengen..
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
| {
"voltageL1":
{
"name" : "L1 Voltage",
"readAddress" : 0,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"voltageL2":
{
"name" : "L2 Voltage",
"readAddress" : 2,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"voltageL3":
{
"name" : "L3 Voltage",
"readAddress" : 4,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"currentL1":
{
"name" : "L1 Current",
"readAddress" : 6,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 100
},
"currentL2":
{
"name" : "L2 Current",
"readAddress" : 8,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 100
},
"currentL3":
{
"name" : "L3 Current",
"readAddress" : 10,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 100
},
"activePowerL1":
{
"name" : "L1 Power",
"readAddress" : 12,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 100
},
"activePowerL2":
{
"name" : "L2 Power",
"readAddress" : 14,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 100
},
"activePowerL3":
{
"name" : "L3 Power",
"readAddress" : 16,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 100
},
"apparentPowerL1":
{
"name" : "L1 Volt Amps",
"readAddress" : 18,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"apparentPowerL2":
{
"name" : "L2 Volt Amps",
"readAddress" : 20,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"apparentPowerL3":
{
"name" : "L3 Volt Amps",
"readAddress" : 22,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"reactivePowerL1":
{
"name" : "L1 Volt Amps Reactive",
"readAddress" : 24,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"reactivePowerL2":
{
"name" : "L2 Volt Amps Reactive",
"readAddress" : 26,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"reactivePowerL3":
{
"name" : "L3 Volt Amps Reactive",
"readAddress" : 28,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"powerFactorL1":
{
"name" : "L1 Power Factor",
"readAddress" : 30,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"powerFactorL2":
{
"name" : "L2 Power Factor",
"readAddress" : 32,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"powerFactorL3":
{
"name" : "L3 Power Factor",
"readAddress" : 34,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"phaseAngleL1":
{
"name" : "L1 Phase Angle",
"readAddress" : 36,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 25000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"phaseAngleL2":
{
"name" : "L2 Phase Angle",
"readAddress" : 38,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 25000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"phaseAngleL3":
{
"name" : "L3 Phase Angle",
"readAddress" : 40,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 25000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"currentTotal":
{
"name" : "Total current",
"readAddress" : 48,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 100
},
"activePowerTotal":
{
"name" : "Total power",
"readAddress" : 52,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 100
},
"apparentPowerTotal":
{
"name" : "Total VoltAmps",
"readAddress" : 56,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"reactivePowerTotal":
{
"name" : "Total VoltAmps Reactive",
"readAddress" : 60,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"powerFactorTotal":
{
"name" : "Total power factor",
"readAddress" : 62,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 25000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 33
},
"phaseAngleTotal":
{
"name" : "Total Phase Angle",
"readAddress" : 66,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 25000,
"emulateStatus" : true,
"priority" : 20
},
"frequency":
{
"name" : "Frequency of supply voltages",
"readAddress" : 70,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 25000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 10
},
"energyImported":
{
"name" : "Import Wh since last reset",
"readAddress" : 72,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 60000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 50
},
"energyExported":
{
"name" : "Export Wh since last reset",
"readAddress" : 74,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 60000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 5
},
"reactiveEnergyImported":
{
"name" : "Import VArh since last reset",
"readAddress" : 76,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 60000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 10
},
"reactiveEnergyExported":
{
"name" : "Export VArh since last reset",
"readAddress" : 78,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 60000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 10
},
"currentNeutral":
{
"name" : "Neutral current",
"readAddress" : 224,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 5000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 100
},
"totalHarmonicVoltageDistortionL1":
{
"name" : "L1/N Volts THD",
"readAddress" : 234,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 20000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"totalHarmonicVoltageDistortionL2":
{
"name" : "L2/N Volts THD",
"readAddress" : 236,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 20000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"totalHarmonicVoltageDistortionL3":
{
"name" : "L3/N Volts THD",
"readAddress" : 238,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 20000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"totalHarmonicCurrentDistortionL1":
{
"name" : "L1 Current THD",
"readAddress" : 240,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 20000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"totalHarmonicCurrentDistortionL2":
{
"name" : "L2 Current THD",
"readAddress" : 242,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 20000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"totalHarmonicCurrentDistortionL3":
{
"name" : "L3 Current THD",
"readAddress" : 244,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 20000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"totalHarmonicVoltageDistortion":
{
"name" : "Average Line to Neutral Volts THD",
"readAddress" : 248,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 20000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"totalHarmonicCurrentDistortion":
{
"name" : "Average Line Current THD",
"readAddress" : 250,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 20000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 20
},
"maximumCurrentL1":
{
"name" : "L1 Maximum Current Demand",
"readAddress" : 264,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 60000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 5
},
"maximumCurrentL2":
{
"name" : "L2 Maximum Current Demand",
"readAddress" : 266,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 60000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 5
},
"maximumCurrentL3":
{
"name" : "L3 Maximum Current Demand",
"readAddress" : 268,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 60000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 5
},
"energyConsumed":
{
"name" : "Total kWh",
"readAddress" : 342,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 60000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 10
},
"reactiveEnergyConsumed":
{
"name" : "Total kVARh",
"readAddress" : 344,
"writeAddress" : 0,
"dataType" : 7,
"readFunctionCode" : 4,
"writeFunctionCode" : 0,
"pollingInterval" : 60000,
"emulateStatus" : true,
"factor" : 0,
"priority" : 10
}
} |
Hey!cotton_eye_joe schreef op woensdag 26 februari 2020 @ 12:38:
Leuk topic, gaat op volgen![]()
Ben al een tijdje bezig met uitzoeken welk systeem ik in huis wil toepassen. Heb in mijn vorige woning wat geëxperimenteerd met draadloze oplossingen van kaku en zwave (drama) maar dat draait mij niet stabiel genoeg. In het donker de verlichting niet aan kunnen krijgen wekt behoorlijk wat frustratie op...
Ik heb recent een een oude woning gekocht die van boven tot onder gerenoveerd moet worden en dus is er meteen de kans op alles bedraad aan te leggen. Heb nu een kleine test draaien die de verlichting in de woonkamer, hal en oprit aanstuurt. Momenteel wordt de eerste helft van de bovenverdieping (2 slaapkamers en badkamer) verbouwd waar straks het eerste deel van het systeem (verlichting en zoneregeling van de cv) moet gaan draaien.
Voorlopig draai ik nog op een raspi met codesys, dit werkt tot nu toe perfect. Heb wel twijfel of dit door de jaren heen blijft draaien, om die reden hier een bericht geplaatst om advies te vragen...
Aangesloten op de raspi zijn een beckhoff EK1100 via ethercat en een Ali-Express tcp modbus io module. Laatste module aangeschaft om mee te testen en heeft nooit een misse slag gehad. 73 euro voor 16DO / 8DI, geen geldNadeel is wel dat deze modules niet uit te breiden zijn, als je meer io nodig hebt moet je een complete module bij plaatsen.
Ik zie dat veel mensen hier een wago gebruiken. Zelf heb ik geen ervaring met wago, zou iemand mij kunnen adviseren welk type ik zou moeten toepassen?
Wat ik nodig heb:
Programmeren in codesys 3.5
Ethercat
Modbus tcp
WebVisu
Alvast bedankt
[ Voor 4% gewijzigd door Ethirty op 26-02-2020 16:37 ]
#team_UTC+1
An investment in knowledge always pays the best interest - Benjamin Franklin
You can call me McOverloper Mini '12 i7/16/256 Air '13 i5/8/256 iPad mini 5 64GB iPhone SE 128GB
Voor thuisgebruik zal er niet veel voordeel zijn, buiten het feit dat als je voor industriele PLCs gaat je waarschijnlijk makkelijker hulp kan vinden voor een probleem in je codesys dan voor Logo! of iets anders.Ethirty schreef op woensdag 26 februari 2020 @ 16:34:
Kan iemand mij in een paar korte woorden uitleggen wat nu het voordeel is van een full-blown (Wago) PLC boven een smart relay als een Siemens Logo! of Eaton Easy E4?
Wat doet een PLC meer of beter dan een smart relay?
Please leave a message after the beep.
*beeeeep*
Ik ken de LOGO software niet maar in welke mate integreren die dingen met open protocollen naar andere software zoals bijvoorbeeld een home assistant, domoticz, openhab?MewBie schreef op woensdag 26 februari 2020 @ 18:15:
[...]
Voor thuisgebruik zal er niet veel voordeel zijn, buiten het feit dat als je voor industriele PLCs gaat je waarschijnlijk makkelijker hulp kan vinden voor een probleem in je codesys dan voor Logo! of iets anders.
Kijk je wat verder dan kom je uit op dingen als modulariteit, de hoeveelheid beschikbare types IO
en hoeveel IO een enkele PLC aan kan.
Maar ook in industriele omgevingen kom je wel eens een Logo! tegen. Laatst moest ik wat data in de documentatie van een leverancier opzoeken en zag dat er een Logo! gebruikt was, dat was wel een "Huh... oh ok..." momentje.
Veel mensen die voor thuis een volwaardige PLC kiezen zullen dat doen omdat ze al bekend zijn met codesys of omdat het voor hun makkelijker is om hulp te krijgen voor codesys.
Modbus TCP kan en via een Siemens S7 PLC library kan je het ding ook aan HomeAssistant hangen.MichVw schreef op woensdag 26 februari 2020 @ 20:37:
[...]
Ik ken de LOGO software niet maar in welke mate integreren die dingen met open protocollen naar andere software zoals bijvoorbeeld een home assistant, domoticz, openhab?
Met een PLC die Codesys 3.5 ondersteund heb je op dat vlak opties, geen idee van een logo. Idem voor netwerking met modbus rtu/tcp etc... allemaal mogelijk met een PLC, geen idee van een LOGO...
#team_UTC+1
An investment in knowledge always pays the best interest - Benjamin Franklin
You can call me McOverloper Mini '12 i7/16/256 Air '13 i5/8/256 iPad mini 5 64GB iPhone SE 128GB
Zo te zien ondersteunen de Logo's modbus tcp als ze een ethernet port hebben.MichVw schreef op woensdag 26 februari 2020 @ 20:37:
[...]
Ik ken de LOGO software niet maar in welke mate integreren die dingen met open protocollen naar andere software zoals bijvoorbeeld een home assistant, domoticz, openhab?
Met een PLC die Codesys 3.5 ondersteund heb je op dat vlak opties, geen idee van een logo. Idem voor netwerking met modbus rtu/tcp etc... allemaal mogelijk met een PLC, geen idee van een LOGO...
Please leave a message after the beep.
*beeeeep*
Ja dat kan je zien. Als je bijv de module die voor 45.01 verkocht is neemt, daar staat op:sjoerd1980 schreef op woensdag 26 februari 2020 @ 21:11:
Afgelopen dagen zijn er op Ebay toch twee 750-652 klemmen (configureerbare seriële klem, die afhankelijk van firmware ook DMX kan draaien) verkocht voor onder de E 50. Voor dat bedrag vind ik het prima acceptabel.
Er zit altijd wel een foto van de zijkant bij met typenummer etc. Is uit een van de nummers af te leiden welke firmware je kan verwachten? Ik verwacht dat ik aan firmware 3 genoeg zal hebben (kan DMX sturen), maar 6 is natuurlijk helemaal veilig.
Ah kijk daar heb ik wat aan. Prijs valt mee en de prijs voor de codesys licensie is ook goed te doen en dan heb ik dezelfde functies die ik nu ook heb. Thx!MichVw schreef op woensdag 26 februari 2020 @ 16:24:
[...]
Ik zou een PFC200 aanraden, als je wat zoekt op het internet ebay.de & ebay.com kan je er één vinden die sterk afgeprijst staat. Normale prijs is een kleine €400 maar onlangs ook één op de kop getikt voor ca. €220.
Ik ga hier zeker even naar kijken, bedanktMichVw schreef op woensdag 26 februari 2020 @ 16:24:
[...]
Mocht je interesse hebben, dit is een git repo met een Codesys 3.5 project gemaakt voor home automation purposes die meteen ook MQTT capabel is voor bv integratie met Domoticz, HomeAssistant etc..
https://github.com/Michie...e/HomeAutomation.CoDeSys3
Er zijn al meerdere mensen hier die er gebruik van maken en er geen problemen mee ondervinden, geen nood dus om het warme water terug opnieuw uit te vinden!
Ik vermoed dat je HomeAssistant en Google assistant door elkaar haalt...cotton_eye_joe schreef op donderdag 27 februari 2020 @ 09:19:
HomeAssistant ben ik iets te paranoïde voor, ik vertrouw het gewoon niet... Het is al vaker voorgekomen dat ik thuis alleen maar ergens over praat en dat er vervolgens reclame over getoond wordt. Heb mijn google speakers daarom de deur uitgedaan
thomke schreef op donderdag 27 februari 2020 @ 12:21:
[...]
Ik vermoed dat je HomeAssistant en Google assistant door elkaar haalt...
HomeAssistant is open source home automation software (net zoals domoticz of openhab) en heeft niets te zien met de google assistant
Via de google assistant (dus de google speakers) kan je indien gewenst wel een verbinding maken met domotica software om deze via spraak aan te sturen.
Ook is het al bewezen dat een google assistent u niet afluistert en dus niet hierop zijn reclame zal baseren.
(ik kan hier niet direct een bron van weergeven)
Het kan door de sterkte van de google algoritmes zijn dat u het gevoel hebt dat u afgeluisterd wordt, maar dit zal niet zo zijn (toch niet via de google assistent..
(ik dacht wel eens gelezen te hebben dat er tv's met ingebouwde microfoon wel gesprekken afluisteren om gerichte reclame te geven.. maar ik kan mis zijn)
Ah ok, mijn fout. Google home + Google assistant was voor mij homeAssistant. Weer wat geleerdthomke schreef op donderdag 27 februari 2020 @ 12:21:
[...]
Ik vermoed dat je HomeAssistant en Google assistant door elkaar haalt...
HomeAssistant is open source home automation software (net zoals domoticz of openhab) en heeft niets te zien met de google assistant
Via de google assistant (dus de google speakers) kan je indien gewenst wel een verbinding maken met domotica software om deze via spraak aan te sturen.
Kun je zeggen maar ik geloof er niks vanthomke schreef op donderdag 27 februari 2020 @ 12:21:
[...]
Ook is het al bewezen dat een google assistent u niet afluistert en hierop zijn reclame zal baseren.
(ik kan hier niet direct een bron van weergeven)
Het kan door de sterkte van de google algoritmes zijn dat u het gevoel hebt dat u afgeluisterd wordt, maar dit zal niet zo zijn (toch niet via de google assistent..
Ik gebruik twee Wago plc's voor I/O (via Modbus en MQTT). Er draait alleen code op om MQTT berichtjes uit te serveren. De logica draait voornamelijk in zelfgeschreven modules en deels in scripts in IP-Symcon op een single board computer (momenteel een Odroid N2).cotton_eye_joe schreef op donderdag 27 februari 2020 @ 13:04:
[...]
Ah ok, mijn fout. Google home + Google assistant was voor mij homeAssistant. Weer wat geleerd![]()
Wat zou het voordeel zijn om naast de logica in de plc een koppeling te maken met bijvoorbeeld HomeAssistant? Ben mijn onderzoek naar de 'kant en klare' software oplossingen al een tijdje geleden gestopt moet ik eerlijk bekennen. Ik kwam altijd uit op kan niet wat ik wil, instabiel, te dure hardware etc.
#team_UTC+1
An investment in knowledge always pays the best interest - Benjamin Franklin
You can call me McOverloper Mini '12 i7/16/256 Air '13 i5/8/256 iPad mini 5 64GB iPhone SE 128GB
Je kan hoegenaamd alles via Loxone, NIKO, LOGO, KNX doen wat je in een huis nodig hebt. Maar als je een paar pagina's terugleest zie je dat mensen bijvoorbeeld volop bezig zijn met het ontwikkelen van een eigen inbouw-sensorkit op basis van microcontrollers die dan praten met de PLC via rs485. Dat kan perfect met off-the-shelf oplossingen, but where's the fun in thatEthirty schreef op donderdag 27 februari 2020 @ 15:40:
Mja, dan blijf ik voor veel gebruikers toch terugkomen bij de vraag: waarom moeilijk doen met een full-blown PLC?
Een paar blokjes slepen in de Siemens Logo software en je verlichting en HVAC zijn klaar. Of je tuinberegening. Siemens biedt kan en klare voorbeelden ter inspiratie.
Er zit een webservertje in, je kan koppelen met HomeAssistant en zo MQTT doen en je kan een heel scala aan HMI's van Siemens eraan hangen als je per se ook een touchscreen voor bediening wil.
Bovendien werken die producten onder de motorkap gewoon evenzeer met de onderdelen en principes die je in dit topic tegenkomt.
Kijk, als PLC's of programmeren je vak/hobby is, dan is het wellicht te simpel. En ook veel IO is wel een beetje een ding. Maar @Oystein heeft volgens mij al laten zien dat je prima kan schalen.
[ Voor 4% gewijzigd door Kanze op 27-02-2020 15:49 ]
[ Voor 8% gewijzigd door bartvb op 27-02-2020 16:09 ]
Oh, ik ben het helemaal met je eens hoor. Ik heb sowieso al een hoop geleerd over industriële automatisering. Heel wat anders dan servers en werkplekken.Kanze schreef op donderdag 27 februari 2020 @ 15:47:
[...]
Je kan hoegenaamd alles via Loxone, NIKO, LOGO, KNX doen wat je in een huis nodig hebt. Maar als je een paar pagina's terugleest zie je dat mensen bijvoorbeeld volop bezig zijn met het ontwikkelen van een eigen inbouw-sensorkit op basis van microcontrollers die dan praten met de PLC via rs485. Dat kan perfect met off-the-shelf oplossingen, but where's the fun in that
@Femme haalt in zijn post wel wat punten aan die kloppen. Ik wil daar enkel de kanttekening bij maken dat die leercurve ook positief kan zijn. Zelf heb ik ondertussen bijzonder veel bijgeleerd en heeft dit project mij ertoe aangezet echt nieuwe gebieden van kennis in elektronica te ontdekken.
Nog niet heel veel 2e hands IO modules gespot. En iets als een Easy E4 heeft veel meer IO mogelijkheden, maar is nog zo nieuw dat die sowieso nog slecht te vinden zijn.bartvb schreef op donderdag 27 februari 2020 @ 15:59:
@Ethirty Heel suf maar een belangrijk punt bij mij zijn toch wel de looksEen Wago PLC ziet er toch wel een stuk toffer uit dan een Logo, no offence
Logo! was hier jaren terug waar ik alles in wilde bouwen, voor KNX een optie werd (budget) of Loxone (bestond nog niet). Misschien toch nog eens goed naar kijken. Voordeel van Wago is dat je prettiger kan aansluiten (steekverbindingen), het is overzichtelijker en wat professioneler en je kan 2e hands vrij goedkoop veel input/output kopen. Maar nog niet gekeken hoe dat laatste bij Siemens Logo zit.
#team_UTC+1
An investment in knowledge always pays the best interest - Benjamin Franklin
You can call me McOverloper Mini '12 i7/16/256 Air '13 i5/8/256 iPad mini 5 64GB iPhone SE 128GB
#team_UTC+1
An investment in knowledge always pays the best interest - Benjamin Franklin
You can call me McOverloper Mini '12 i7/16/256 Air '13 i5/8/256 iPad mini 5 64GB iPhone SE 128GB
Ik had de indruk dat dat vooral was omdat de gemeten temperaturen gelogd werden. Dat heb ik (volgens mij) allemaal uitgezet.Ethirty schreef op donderdag 27 februari 2020 @ 21:30:
Misschien een open deur, maar als het geheugen vol zat lijkt me dat je wat te veel vraagt van je PLC.
Heb je al een nieuwe SD kaart getest? Die dingen gaan wel een stuk als je ze actief gebruikt.
[ Voor 10% gewijzigd door UglyDinosaur op 27-02-2020 21:41 ]
#team_UTC+1
An investment in knowledge always pays the best interest - Benjamin Franklin
You can call me McOverloper Mini '12 i7/16/256 Air '13 i5/8/256 iPad mini 5 64GB iPhone SE 128GB
Blijft die 100% CPU usage constant zo? Met welke frequentie schrijf je data naar de SD kaart?benbam schreef op donderdag 27 februari 2020 @ 21:10:
Ik heb een vervelend probleem met mijn PFC200...
Na een tijdje stopt hij gewoon met werken. Alles uitgangen vallen uit en hij reageert niet meer. Enige dat helpt is de voeding er af halen en zo terug opstarten.
Aangezien mijn hele verlichting en verwarming er op draait zeer vervelend...
Iemand misschien een idee waar ik moet beginnen zoeken? Ik draai alles vanop de SD kaart omdat ik problemen kreeg met een vol geheugen in het verleden... Ik was al aan het denken dat dat misschien niet de meest gezonde situatie is...
Net nog eens gekeken en nu draait hij toch ook de hele tijd tegen de 90%.Blijft die 100% CPU usage constant zo? Met welke frequentie schrijf je data naar de SD kaart?
Punt 1, 2 en 3 kunnen natuurlijk juist een voordeel zijn voor de mensen die al bekend zijn met het programmeren van plc'sFemme schreef op donderdag 27 februari 2020 @ 14:28:
[...]
Ik gebruik twee Wago plc's voor I/O (via Modbus en MQTT). Er draait alleen code op om MQTT berichtjes uit te serveren. De logica draait voornamelijk in zelfgeschreven modules en deels in scripts in IP-Symcon op een single board computer (momenteel een Odroid N2).
Plc's super super stabiel maar hebben ook wel veel nadelen voor gebruik in smart homes:Ik heb ervoor gekozen om alles modulair in IP-Symcon op te zetten. Ik kan ontwikkelen in een taal (PHP) en design patterns die ik gewend ben. Beheer is makkelijker via een webbased management console en je kunt er makkelijk een app mee inrichten voor visualisatie en bediening. Het systeem is event driven wat mijn inziens beter past bij wat er in een woning gebeurt dan een cyclisch systeem zoals een plc. Je doet pas iets op het moment dat er iets aan de state van je huis verandert.
- De leercurve is stijl en er is weinig online informatie voorhanden vergeleken met gangbare programmeertalen zoals javascript, python en php.
- Ik vind de CoDeSys 2.3 ontwikkelomgeving voor mijn wat oudere plc's echt een draak om mee te werken. Je gaat 30 jaar terug in de tijd vergeleken met IDE's zoals PHPStorm/WebStorm. Hopelijk is CoDeSys 3.5 beter. Nog een nadeel: alleen beschikbaar voor Windows. Geen MacOS, geen Linux.
- Het inrichten van logica is mijn inziens vrij tijdrovend. Hoe ik het doe in IP-Symcon is dat ik modules bouw voor bijvoorbeeld functionaliteit zoals een lichtcontroller of thermostaat. Als die module er is eenmaal is kan ik met een paar kliks een instantie toevoegen voor een bepaalde ruimte en die configureren zonder code aan te moeten raken.
- De visualisatie is ruk. Geen fatsoenlijke webapp die je makkelijk kunt inrichten, geen mobiele apps.
- Data logging mag je ook lekker zelf bouwen. De hardware en software van een plc is er niet geschikt om er database op te draaien.
- Beperkte hardwareondersteuning vergeleken met oplossingen zoals Home Assistant of IP-Symcon. Met die laatsten kun je out of the box met heel veel verschillende protocollen communiceren en kun je tevens gebruikmaken van allerlei modules of plugins om specifieke diensten of apparaten te integreren in je systeem.
Net de aanpassingen gedaan en geüpload naar de PLC. Blijkbaar zat er toch ook nog een taakje in het programma dat data logde. Dat taakje er uit gegooid en de cycle times van de grootste taken een pak langer gemaakt.benbam schreef op vrijdag 28 februari 2020 @ 06:32:
[...]
Net nog eens gekeken en nu draait hij toch ook de hele tijd tegen de 90%.
Hoe vaak hij naar de sd kaart schrijft weet ik niet, maar aangezien ik het zo heb aangepast heb dat alles vanaf de SD kaart gaat ipv het interne geheugen kan dat best wel eens veel zijn.
Ik ga al eens proberen binnenkort om de cycle time van de taken wat te vergroten...
Je stuurt het relais dus met een puls uit de PLC? Hoe weet de PLC de toestand van het relais dan?Kanze schreef op vrijdag 28 februari 2020 @ 12:17:
In afwachting van enkele andere onderdelen heb ik deze ochtend wat geëxperimenteerd met het sturen van een Eltako ES12DX-UC telerupter (bi-stabiel) relais. In de testopstelling wordt het relais geschakeld via een schakelaar die een ingang op een 750-431 hoog zet waardoor een uitgang op een 750-530 ook hoog wordt gezet.
Doe het dan voor de (klein)kinderen. Er is meer dan alleen terugverdientijd bij dit soort dingen.sjoerd1980 schreef op zaterdag 29 februari 2020 @ 16:25:
[...]Maar ja, E 10 is iets van 40kWh, dus relais moet meer dan 40k uur mee voordat het prijsverschil terugverdiend is...
Tja, maar dan moet je ook geen PLC gebruiken en gewoon 1 led-peertje per kamer ophangen. Het is een fijne balans tussen hobby, comfort, budget en milieu.bartvb schreef op zaterdag 29 februari 2020 @ 18:29:
[...]
Doe het dan voor de (klein)kinderen. Er is meer dan alleen terugverdientijd bij dit soort dingen.
#team_UTC+1
An investment in knowledge always pays the best interest - Benjamin Franklin
You can call me McOverloper Mini '12 i7/16/256 Air '13 i5/8/256 iPad mini 5 64GB iPhone SE 128GB
Forumlid @MichVw beheert een project op github dat net specifiek doet wat jij nodig had. Het voorziet een MQTT interface waarmee domotica-software kan communiceren met de PLC. Het zal bij mij ook dienen als backbone voor de communicatie naar een latere hoge laag software genre OpenHAB.Roekeloos schreef op zaterdag 29 februari 2020 @ 11:46:
Ik heb lang zitten prutsen om een oplossing te vinden om pulsdrukkers goed uit te kunnen lezen. Ik gebruik nu een PiFace, maar ik wil overstappen van Raspberry Pi naar Odroid C2. Aanvankelijk was ik op zoek naar een oplossing die events genereert, zoals UDP of MQTT. Lang zitten prutsen met een Wago 750-881, maar ik kom er niet uit met dat oerwoud van software en licenties en uiteindelijk blijft het een dure oplossing.
Uiteindelijk ben ik op een Siemens Logo uitgekomen, welke ik middels S7Comm uitlees en aanstuur m.b.v. NodeRed. De PLC heeft eenvoudige logica met off-delays op de ingangen, zodat ook korte pulsen worden "gezien". Het blijft polling dus sub-optimaal, maar het werkt voor mij!
Dat is inderdaad een kernprobleem bij het gebruik van teleruptoren in combinatie met een centraal sturingssysteem zoals een PLC. De eenvoudigste oplossing is om te werken met een impulsschakelaar/schakelrelais zoals de Eltako ESR12Z-4DX-UC en deze dan in schakelrelais-modus te plaatsen. De ES12DX-UC in het filmpje kan dat niet en in die opstelling is dus geen terugmelding. Wij kiezen voor deze weg omdat je die Eltako's eenvoudig kan omschakelen tot teleruptor. Stel dat heel de PLC eruit valt kan je in een noodgeval mits wat snelle aanpassingen aan de bekabeling de installatie in laat ons zeggen manuele modus plaatsen zodat het huis gewoon leefbaar blijft.sjoerd1980 schreef op zaterdag 29 februari 2020 @ 16:25:
[...]
Je stuurt het relais dus met een puls uit de PLC? Hoe weet de PLC de toestand van het relais dan?
Misschien heb je er iets handigs op gevonden en dan wil ik dat ook wel weten. Heb nu een aantal teleruptoren in gebruik en deze moeten naar mijn idee vervangen worden door relais.
Daarbij twijfel ik nog tussen de Eltako relais op basis van bistabiel relais of gewone ordinaire relais. Prijsverschil zit op iets van E 10. Nadeel van gewone relais is het statische verbruik van 1W. Dit is relatief hoog ten opzichte van de gestuurde lampen. Maar ja, E 10 is iets van 40kWh, dus relais moet meer dan 40k uur mee voordat het prijsverschil terugverdiend is...
[ Voor 4% gewijzigd door Kanze op 29-02-2020 19:51 ]
Dat zou ik wel interessant vinden om te horen. Normaliter doet PLC code niet aan dynamische geheugen allocatie. Dat komt de stabiliteit ten goede. Als jouw PLC wel langzaam minder vrij geheugen krijgt tot een reboot dan is er iets bijzonders aan de hand.benbam schreef op zaterdag 29 februari 2020 @ 11:14:
[...]
Net de aanpassingen gedaan en geüpload naar de PLC. Blijkbaar zat er toch ook nog een taakje in het programma dat data logde. Dat taakje er uit gegooid en de cycle times van de grootste taken een pak langer gemaakt.
Nu draait de CPU tussen de 50 en 60%. Het heeft zijn effect dus niet gemist.
Wel ga ik nog eens in het oog houden wat het verloop is van het vrije geheugen van de PLC zelf. Eens kijken of dat niet geniepig volloopt waardoor de PLC blijft hangen...
Inmiddels wat beter naar gekeken en uit de handleiding:bartvb schreef op donderdag 27 februari 2020 @ 14:00:
Nu lijken de PFC200 serie maar ook de 750-889 aardige kanshebbers (tweede hands dan). Ik krijg alleen niet helder wat nu precies het voordeel van de 750-889 (een 750 PLC met KNX ondersteuning) is tov een andere 750-serie PLC? Iemand een idee?
Daar had ik eerder moeten kijkenThe KNX IP controller works on the hardware basis of the WAGO ETHERNET controller 750-880. Except for EtherNet/IP, the same protocols are used for the data transfer. In addition, the KNX IP protocol is implemented.
Ik heb eerlijk gezegd nog wat werk, heb wat info gekregen van Wago support hoe je best RS485 aanpakt met é!cockpit, ik stuur het je straks anders even door.Antonius schreef op zondag 1 maart 2020 @ 11:37:
[...]
Dat zou ik wel interessant vinden om te horen. Normaliter doet PLC code niet aan dynamische geheugen allocatie. Dat komt de stabiliteit ten goede. Als jouw PLC wel langzaam minder vrij geheugen krijgt tot een reboot dan is er iets bijzonders aan de hand.
Michiel, begrijp ik het goed dat jij de modbus communicatie over RS485 tussen PLC en energiemeter inmiddels aan de praat hebt?
Bij mijn heb ik dat aan de praat gekregen in Codesys. Met welke software werk je?[...]
Michiel, begrijp ik het goed dat jij de modbus communicatie over RS485 tussen PLC en energiemeter inmiddels aan de praat hebt?
Kan je die informatie hier publiceren? Ik ben zelf momenteel ook bezig met RS485. We kunnen de krachten bundelen!MichVw schreef op zondag 1 maart 2020 @ 14:06:
[...]
Ik heb eerlijk gezegd nog wat werk, heb wat info gekregen van Wago support hoe je best RS485 aanpakt met é!cockpit, ik stuur het je straks anders even door.
Eenmaal alles werkt documenteer ik het boeltje op de git repo ook natuurlijk.
@benbam , ik werk met é!cockpit, in codesys 3S zou het geen probleem mogen zijn, mede door het voorbeeld dat je me voorzien hebt, nogmaals bedankt daarvoor!Kanze schreef op zondag 1 maart 2020 @ 15:08:
[...]
Kan je die informatie hier publiceren? Ik ben zelf momenteel ook bezig met RS485. We kunnen de krachten bundelen!
In de basis heb ik geen behoefte om te werken met teleruptoren, maar ik zag dat jij deze aan de PLC had en vroeg me af of je er een handige truc voor had, dan zou ik mooi mijn teleruptoren kunnen hergebruikenKanze schreef op zaterdag 29 februari 2020 @ 19:49:
De eenvoudigste oplossing is om te werken met een impulsschakelaar/schakelrelais zoals de Eltako ESR12Z-4DX-UC en deze dan in schakelrelais-modus te plaatsen.
Mijn testunit zit al in de post dus ik zal die dingen voor je kunnen testen volgende week. Nu zou voor mij een verlies van 0.4W voor vier relaisuitgangen geen probleem zijn. In de technische fiche staat dat bij spanningsuitval de teleruptor definitief uitschakelt. Van die synchronisatie heb ik zelf bij mijn testopstelling niets gemerkt.sjoerd1980 schreef op zondag 1 maart 2020 @ 20:31:
[...]
In de basis heb ik geen behoefte om te werken met teleruptoren, maar ik zag dat jij deze aan de PLC had en vroeg me af of je er een handige truc voor had, dan zou ik mooi mijn teleruptoren kunnen hergebruiken![]()
Maar de ESR12Z_4DX had ik eerder nog niet zo op het oog. Wat prijs betreft komt deze dan (per kanaal) weer in de buurt van een normaal 'dom' relais. Ben jij bekend met dit type? Er zijn namelijk twee dingen die ik niet zo begrijp;
- Deze pakt een standby vermogen van 0.4W bij 230V. Maar is dat 230V geschakelde spanning of 230V stuurspanning? Dat maakt nogal uit aangezien ik uiteraard met 24V stuur en er dan maar een standby verlies van 60mW is. Verlies op de stuuringangen is minimaal...
- Er staat duidelijk dat het relais na installatie eerst moet synchroniseren voordat er iets op de geschakelde contacten aangesloten wordt. Maar ik neem wel aan dat het overweg kan met spanninguitval?
[ Voor 25% gewijzigd door Kanze op 01-03-2020 21:54 ]
Onze ruwbouw is ondertussen bijna klaar en binnenkort zullen de elektrische leidingen worden geslepen. Mijn aandacht wordt dus helaas aan alle kanten op de proef gesteld. Vermoedelijk zal het ontwerp van de sensorkit een tijdje in het prototyping stadium blijven zitten. Ik moet ook duidelijk nog een pak studeren want op het vlak van IC ontwerp is het voor mij echt nog al doende leren.MichVw schreef op zondag 1 maart 2020 @ 22:10:
@Kanze , ik weet niet wat je bezigheden zijn maar ik wil me wel gerust toespitsen op het bouwen van een modbus rtu statemachine. Eventueel kan jij je dan meer toespitsen op het bouwen van de pcb/ATtiny sensor?
Ja, ik heb succesvolle communicatie met een Eastron energiemeter vanuit é!Cockpit. (ook maar nog sinds gisteren) dus daar hoef je je geen zorgen om te maken. Ik dien het hele boeltje wel nog verder uit te werken tot iets die makkelijk uitbreidbaar is naar meerdere devices.Kanze schreef op maandag 2 maart 2020 @ 13:20:
[...]
Onze ruwbouw is ondertussen bijna klaar en binnenkort zullen de elektrische leidingen worden geslepen. Mijn aandacht wordt dus helaas aan alle kanten op de proef gesteld. Vermoedelijk zal het ontwerp van de sensorkit een tijdje in het prototyping stadium blijven zitten. Ik moet ook duidelijk nog een pak studeren want op het vlak van IC ontwerp is het voor mij echt nog al doende leren.
Zo weet ik ondertussen reeds dat we hoe dan ook zullen moeten gebruikmaken van een MAX485 chip of afgeleide. De UART interface op de grotere ATTiny's kan voor zover ik begrijp niet native RS485 aansturen. Of als het dat wel kan dan vind ik er praktisch geen informatie rond.
Vooruitzicht voor de komende twee wekenHeb jij reeds succes gehad met een RS485 link op te stellen in é!Cockpit? Ik zie in je repo daar al wat van staan -- is dat reeds hardwarematig getest?
- Testopstelling uitbreiden met een Eltako 4DX en testen hoe goed deze werken in schakelrelais modus
- Mij verder door Introduction to Microcontrollers worstellen in afwachten van aankomst van het prototyping bordje met de 3216
Klopt wat je zegt. Ik was vergeten dat ik dat nog had nagekeken vooraleer mijn devkit te bestellen. Dat wordt dus benieuwd afwachten tot die aankomt.MichVw schreef op maandag 2 maart 2020 @ 13:45:
[...]
Ja, ik heb succesvolle communicatie met een Eastron energiemeter vanuit é!Cockpit. (ook maar nog sinds gisteren) dus daar hoef je je geen zorgen om te maken. Ik dien het hele boeltje wel nog verder uit te werken tot iets die makkelijk uitbreidbaar is naar meerdere devices.
normaal kan de 3216 wel native RS485 aan, ik zocht het op voor het aanschaffen van een dev kit:
http://ww1.microchip.com/...-data-sheet-40001997B.pdf
vanaf pagina 338
Aha, ja daar had ik niet aan gedacht. Op een RS485 bus kan maar 1 master tegelijk aktief zijn. Als je over dezelfde RS485 verbinding vanuit je PLC met meerdere verschillende slaves wilt communiceren, dan moet je dat in goede banen leiden zodat er niet meerdere apparaten tegelijk over de RS485 bus gaan praten. De meeste modbus communicatie die ik tegenkom is over ethernet. Dan kun je "vanzelf" meerdere slaves aan.MichVw schreef op zondag 1 maart 2020 @ 18:49:
Het enige wat er nog aan dient toegevoegd te worden (is meer een opmerking na wat doorvragen aan Wago support): Om meerdere devices te gaan uitlezen moet je een statemachine gaan bouwen die zelfde ModbusMaster FB herbruikt. Geen rocketscience, ik ben er gewoon nog niet aan geraakt
Op zich zorgt het master-slave protocol er voor dat meerdere slaves niet tegelijk de bus kunnen bezetten. Ik heb enkel naar MODBUS RTU gekeken. Als je zegt dat MODBUS over ethernet vanzelf meerdes slaves aankan wat bedoel je precies?Antonius schreef op maandag 2 maart 2020 @ 16:59:
[...]
Aha, ja daar had ik niet aan gedacht. Op een RS485 bus kan maar 1 master tegelijk aktief zijn. Als je over dezelfde RS485 verbinding vanuit je PLC met meerdere verschillende slaves wilt communiceren, dan moet je dat in goede banen leiden zodat er niet meerdere apparaten tegelijk over de RS485 bus gaan praten. De meeste modbus communicatie die ik tegenkom is over ethernet. Dan kun je "vanzelf" meerdere slaves aan.
Je hebt geen uitgeprogrammeerde state machine nodig om een voor een verschillende modbus tcp slaves af te handelen. Je kunt gewoon meerdere tcp modbus slaves definiëren die "tegelijkertijd" afgehandeld worden door de PLC. Het is feitelijk natuurlijk niet zo dat ze precies tegelijk bezig zijn, maar ethernet communicatie an sich zorgt er al voor dat er over hetzelfde kabeltje allerlei zaken tegelijk heen en weer kunnen lopen die elkaar niet bijten terwijl RS485 in dat opzicht simpeler en daarmee ook beperkter is. Op een RS485 bus kan maar 1 apparaat tegelijk zenden. De beschikbare bandbreedte is veel lager. Ethernet verkeer gaat sneller, collissions en packet loss wordt op een heel laag niveau "vanzelf" opgelost.Kanze schreef op maandag 2 maart 2020 @ 17:23:
[...]
Op zich zorgt het master-slave protocol er voor dat meerdere slaves niet tegelijk de bus kunnen bezetten. Ik heb enkel naar MODBUS RTU gekeken. Als je zegt dat MODBUS over ethernet vanzelf meerdes slaves aankan wat bedoel je precies?
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
| PROGRAM DMX_SEND
VAR
IP_CONTROL1 : oscat_network.IP_CONTROL2_V2;
IP_C1 : oscat_network.IP_C;
S_BUF1 : oscat_network.NETWORK_BUFFER_SHORT;
R_BUF1 : oscat_network.NETWORK_BUFFER_SHORT;
send : BOOL;
i : INT;
init : BOOL;
END_VAR
-----------------------------------------------
IF init = FALSE THEN
init := TRUE;
S_BUF1.BUFFER [0]:= BYTE#16#41; (* Write DMX header character in the buffer *)
S_BUF1.BUFFER [1]:= BYTE#16#72;
S_BUF1.BUFFER [2]:= BYTE#16#74;
S_BUF1.BUFFER [3]:= BYTE#16#2D;
S_BUF1.BUFFER [4]:= BYTE#16#4E;
S_BUF1.BUFFER [5]:= BYTE#16#65;
S_BUF1.BUFFER [6]:= BYTE#16#74;
S_BUF1.BUFFER [7]:= BYTE#16#00;
S_BUF1.BUFFER [8]:= BYTE#16#00;
S_BUF1.BUFFER [9]:= BYTE#16#50;
S_BUF1.BUFFER [10]:= BYTE#16#50;
S_BUF1.BUFFER [11]:= BYTE#16#0E;
S_BUF1.BUFFER [12]:= BYTE#16#00;
S_BUF1.BUFFER [13]:= BYTE#16#00;
S_BUF1.BUFFER [14]:= BYTE#16#00;
S_BUF1.BUFFER [15]:= BYTE#16#00;
S_BUF1.BUFFER [16]:= BYTE#16#02;
S_BUF1.BUFFER [17]:= BYTE#16#00; (* the following DMX channels have already been written to the buffer *)
END_IF;
send := FALSE;
FOR i:= 18 TO 118 DO (* check whether the DMX values in the global variable have changed *)
IF S_BUF1.BUFFER[i] <> OtherVariables.DMX.BUFFER[i-18] THEN
S_BUF1.BUFFER[i]:= OtherVariables.DMX.BUFFER[i-18];
send := TRUE;
END_IF
END_FOR
IF send THEN
IP_C1.C_MODE:= 3;
IP_C1.C_ENABLE:= TRUE; (* Enable connection establishment *)
IP_C1.TIME_RESET:= TRUE;
IP_C1.R_OBSERVE:= FALSE; (* Monitor data reception *)
IP_C1.C_IP:= oscat_network.IP4_DECODE ('10.11.12.195 ');
IP_C1.C_PORT:= WORD#6454;
S_BUF1.SIZE := 118;
send:= FALSE;
END_IF;
IP_CONTROL1 (TIME_OUT:= T#1S, IP_C:= IP_C1, S_BUF:= S_BUF1, R_BUF:= R_BUF1); |
1
2
3
| VAR_GLOBAL
DMX : oscat_network.NETWORK_BUFFER_SHORT;
END_VAR |
Net een mailtje gekregen van eibmarkt dat m'n verzending vandaag pas werd verstuurd. Dat wordt dus wachten tot begin volgende week om die teleruptor te kunnen testen. Hoe verloopt de installatie bij jou verder?sjoerd1980 schreef op zondag 1 maart 2020 @ 20:31:
[...]
In de basis heb ik geen behoefte om te werken met teleruptoren, maar ik zag dat jij deze aan de PLC had en vroeg me af of je er een handige truc voor had, dan zou ik mooi mijn teleruptoren kunnen hergebruiken![]()
Maar de ESR12Z_4DX had ik eerder nog niet zo op het oog. Wat prijs betreft komt deze dan (per kanaal) weer in de buurt van een normaal 'dom' relais. Ben jij bekend met dit type? Er zijn namelijk twee dingen die ik niet zo begrijp;
- Deze pakt een standby vermogen van 0.4W bij 230V. Maar is dat 230V geschakelde spanning of 230V stuurspanning? Dat maakt nogal uit aangezien ik uiteraard met 24V stuur en er dan maar een standby verlies van 60mW is. Verlies op de stuuringangen is minimaal...
- Er staat duidelijk dat het relais na installatie eerst moet synchroniseren voordat er iets op de geschakelde contacten aangesloten wordt. Maar ik neem wel aan dat het overweg kan met spanninguitval?
Ik vermoed dat die 3kHz eerder aangeeft wat de maximum snelheid is waarmee een uitgang op die klem elektrisch van potentiaal kan switching. De instructie daartoe komt van de PLC en die is gelimiteerd tot 2ms voor I/O switching.bartvb schreef op vrijdag 6 maart 2020 @ 15:35:
Hmm, die simpele DO-modules hebben dus zelf geen intelligentie om een PWM trein in stand te houden? Jammer, vooral omdat die 750-511 niet heel ruim beschikbaar is en niet echt goedkoop is. Een simpele 750-501 heb je voor een paar euro.
In de technische specs staat dat die 750-501 maximaal 3kHz aan kan wat schakelen betreft, maar als ik het goed begrijp is dat niet haalbaar omdat de cycle time van de PLC daar niet kort genoeg voor is? Je kan maar 1x per cycle aan/uit schakelen lijkt me?
Er is ook nog een verschil tussen een PWM signaal en de output van een DO zoals de 750-501 aan en uit zetten.bartvb schreef op vrijdag 6 maart 2020 @ 22:05:
@Kanze De 750-511 bedoel je met de 250Hz neem ik aan?
Maar bummer. Met 2ms cycle time kan een output maximaal 500x schakelen/seconde. Als je dat doet heb je een duty cycle van 50%. Wil je b.v. ook 2% kunnen doen dan is maximaal 10Hz haalbaar. Lijkt erop dat die Mean Well een PWM signaal tussen de 100Hz en 3kHz wil hebben.
Licht dan toch maar op een andere manier sturen dus, jammer! Best een flinke leercurve het PLC gebeuren, hardware zit anders in elkaar dan ik zou verwachten, software is op het moment nogal een puzzel, technische ontwikkeling ligt op hardware en softwaregebied 20 jaar achter. Maar aan de andere kant is dat ook weer de kracht. Het moet rock solid zijn, het hoeft niet het laatste hippe JS framework te kunnen draaien. Maar is even wennen dus
Ondertussen wel via eBay wat hardware bij elkaar gesprokkeld (750-889, voedingen en een hoop DI en DO). Nu uitzoeken hoe ik kan zorgen dat ik ook contact krijg met dat spul. Zat geen software bij.
[ Voor 6% gewijzigd door Kanze op 07-03-2020 06:54 ]
Bij mij loopt er op dat vlak even niets. Je weet hoe het gaat tijdens de bouw ;-). Maar ik heb een bestellijst klaar staan voor wat draad spul, wartels en voedingen. Ik wacht even rustig op jouw bevindingen van het vier voudige relais en dan kunnen er ook relais mee besteld worden.Kanze schreef op vrijdag 6 maart 2020 @ 20:47:
[...]
Net een mailtje gekregen van eibmarkt dat m'n verzending vandaag pas werd verstuurd. Dat wordt dus wachten tot begin volgende week om die teleruptor te kunnen testen. Hoe verloopt de installatie bij jou verder?
Hebje hier nog vooruitgang op geboekt?UglyDinosaur schreef op donderdag 27 februari 2020 @ 21:34:
[...]
Ik had de indruk dat dat vooral was omdat de gemeten temperaturen gelogd werden. Dat heb ik (volgens mij) allemaal uitgezet.
Zou het kunnen dat ik simpelweg door verlichting en HVAC al op de limieten van de PLC zit?
De belasting van de PLC is zo te zien ook wel zeer hoog...
[Afbeelding]
Eigenlijk heeft me dat nog veel kopzorgen opgeleverd... Er zaten tasks in die om de 5ms werden uitgevoerd. Ik heb die periode verlengd en toen viel de belasting heel sterk terug. Maar de keerzijde van de medaille was dat om de één of andere reden alle uitgangen een fractie van een seconde uitvielen als de verwarming aan of uit ging... Alle lichten dus even uit... Niet handig...MichVw schreef op donderdag 12 maart 2020 @ 10:13:
[...]
Hebje hier nog vooruitgang op geboekt?
Is dat een telnet connectie naar de plc? welk commando voer je precies uit om de belasting zo te zien te krijgen?
vrij interessant
interessant! is er een manier om te zien met welke PLC task een lijn in 'htop' overeenkomt?UglyDinosaur schreef op donderdag 12 maart 2020 @ 10:40:
[...]
Eigenlijk heeft me dat nog veel kopzorgen opgeleverd... Er zaten tasks in die om de 5ms werden uitgevoerd. Ik heb die periode verlengd en toen viel de belasting heel sterk terug. Maar de keerzijde van de medaille was dat om de één of andere reden alle uitgangen een fractie van een seconde uitvielen als de verwarming aan of uit ging... Alle lichten dus even uit... Niet handig...
Verdere experimenten leverden me alleen maar een instabiele PLC op die na enkele uren uit viel... Niet bevorderlijk voor de WAF![]()
Ondertussen staat bijna alles terug zoals het was met terug een belasting van bijna 100%... Ik ga het zo even laten draaien om de stabiliteit te testen en dan stapje per stapje aanpassingen doen...
Ik log in op de PLC via Putty en met het commando htop kan je dan de belasting zien
Geen ideeMichVw schreef op donderdag 12 maart 2020 @ 12:06:
[...]
interessant! is er een manier om te zien met welke PLC task een lijn in 'htop' overeenkomt?
[ Voor 27% gewijzigd door Jantje2000 op 12-03-2020 13:24 ]
De wet van Murphy: Alles wat fout kan gaan zal fout gaan.
Op de Wago site kun je een Linux Toolchain downloaden in de Runtime Software sectie.Jantje2000 schreef op donderdag 12 maart 2020 @ 13:22:
Ik las dat je een PFC-200 zou moeten kunnen programmeren met standaard programmeertalen, maar zijn er SDK's beschikbaar? Want de input's en outputs zullen uiteindelijk toch bediend moeten kunnen worden lijkt me?
Ik zat even te Googlen, en ik vond daar dan ook wel een SDK voor bijvoorbeeld python, maar dat is niet officieel ofzo.
Bovendien ontbreekt er de documentatie.
Please leave a message after the beep.
*beeeeep*
Ik heb nog eens tijd gevonden om die Eltako te testen. Beelden zeggen toch altijd meer dus hieronder het filmpje;sjoerd1980 schreef op zondag 8 maart 2020 @ 19:13:
[...]
Bij mij loopt er op dat vlak even niets. Je weet hoe het gaat tijdens de bouw ;-). Maar ik heb een bestellijst klaar staan voor wat draad spul, wartels en voedingen. Ik wacht even rustig op jouw bevindingen van het vier voudige relais en dan kunnen er ook relais mee besteld worden.
Als ik het goed heb gebruik je de 'bistabel' modus om te kunnen schakelen als de PLC eruit ligt (die dingen gaan 25 jaar mee zonder probleem normaal maar redundantie is altijd goed veronderstel ik) maar heb je het het probleem dat je geen feedback hebt naar de PLC?Kanze schreef op zondag 15 maart 2020 @ 00:56:
[...]
Ik heb nog eens tijd gevonden om die Eltako te testen. Beelden zeggen toch altijd meer dus hieronder het filmpje;
[YouTube: WAGO 750-8202 + ELTAKO ESR12Z-4DX-UC]
[ Voor 18% gewijzigd door smaertens op 16-03-2020 10:25 ]
Klopt. Je kan in een noodgeval stuurkringen van bijvoorbeeld drukknoppen rechtstreeks aansluiten op een bistabiel-relais (teleruptor). Het lijkt me niet ondenkbaar dat in de beginfase het fixen van bugs de installatie tijdelijk offline haalt. Dan is het wel gemakkelijk dat het licht in de badkamer kan blijven aangaan.MichVw schreef op maandag 16 maart 2020 @ 09:15:
[...]
Als ik het goed heb gebruik je de 'bistabel' modus om te kunnen schakelen als de PLC eruit ligt (die dingen gaan 25 jaar mee zonder probleem normaal maar redundantie is altijd goed veronderstel ik) maar heb je het het probleem dat je geen feedback hebt naar de PLC?
In principe moet het omgekeerd zijn. In normale relais-modus heb je een constante stroom van een PLC output naar de stuuringang van dat relais. Dat is ook meteen het feedbacksignaal. Zet je die output laag dan heb je garantie dat het relais ook uit staat.In 'relais' modus is het het voordeel dat er veel minder stand-by verlies is en waarschijnlijk ook dat het ding geen geluid maakt (kan handig zijn in sommige omgevingen veronderstel ik). Nadeel is dan weer de prijs?
Het "probleem" met het gebruik van zuivere relais is dat er geen backup mogelijk is bij het uitvallen van je PLC systeem. Ik denk dan vooral aan uitval omwille van softwarefouten of gewoon downtime tijdens het programmeren. De hardware zal inderdaad wellicht nooit het probleem zijn.Ik ondervind al een eindje dat ik dergelijk elektrisch materiaal goedkoopst terugvind op Eibabo:
https://www.eibabo.be/nl/...-eb15703758?fs=4292810202
(Eltako ESR12Z-4DX-UC voor €60)
dat zijn dan 4 relais voor €60, ze hebben ook wago relais voor €7/stuk
https://www.eibabo.be/nl/...10704843?fs=514347569&c=0
of zelf dit phoenix contact kan ook een optie zijn?
https://www.eibabo.be/nl/...15506574?fs=514347569&c=0
Als ik het goed begrijp kan je met die opstelling geen algemene AAN/UIT functies maken. De PLC weet niet wat de stand van het bistabiel relais is (en ook of deze wel geschakeld heeft bij een impuls). Dat hoeft geen probleem te zijn indien die functionaliteit niet nodig is. Helaas heb ik dat wel nodig en moet ik dus voor een duurdere oplossing gaan.smaertens schreef op maandag 16 maart 2020 @ 10:24:
Ik heb overal de ER12-200UC van Eltako gebruikt.
Ik heb hier ooit eens een post gezet met de verschillende mogelijkheden en de kostprijs per input;
Het voordeel van die ER12 is dat die bijna geen verbruik heeft als hij in een bepaalde stand staat.
Het leek mij gewoon veel te complex (en te duur) om elke output die je bekrachtigt ook nog eens terug in te lezen als input.
Met deze kan ik de voeding van de ledverlichtingen dubbel onderbreken. Als je enkel onderbreekt, heb je nog kans dat de ledverlichting lichtjes blijft branden etc.
[ Voor 3% gewijzigd door Kanze op 16-03-2020 10:36 ]
Klopt, maar je hoeft natuurlijk niet bij iedere cycle de output om te zetten. Daardoor kwam ik ook op die 10Hz. Als je iedere cycle omschakelt dan haal je 500Hz met een cycletime van 2ms. Als je een duty cycle van 2% mogelijk wil maken zal je moeten zorgen dat er 49 'off' cycles tegenover iedere 'on' cycle staan. In totaal 50*2=100ms, dus 10Hz.Kanze schreef op zaterdag 7 maart 2020 @ 06:50:
[...]
Je kan die output drijven tot een switching snelheid van 2ms maar dat is niet hetzelfde als een PWM signaal van 500 Hz. De DO zal switchen aan 500Hz maar heeft geen controle over de duty cycle. Het is ofwel 0% ofwel 100%. Als je de PLC cycle time aanpast maar een hogere waarde genereer je een geheel nieuw PWM signaal aan een frequentie gelijk aan de cycle time. Maar ook dan heb je geen duty cycle controle.
:strip_exif()/f/image/1lmjeg4u9fvjW5xBR8oF1vke.jpg?f=fotoalbum_large)
[ Voor 3% gewijzigd door bartvb op 17-03-2020 21:16 ]
Ah zo begrijp ik wat je bedoelde. Je kan inderdaad op die manier een PWM signaal produceren. Interessant dat beeld met je oscilloscoop. Vermoedelijk zet de PLC op die uitgang het voltage net laag genoeg zodat het voor nul wordt aangenomen in een extern circuit. Helemaal naar nul volt zal waarschijnlijk te veel slijtage veroorzaken.bartvb schreef op dinsdag 17 maart 2020 @ 21:14:
[...]
Klopt, maar je hoeft natuurlijk niet bij iedere cycle de output om te zetten. Daardoor kwam ik ook op die 10Hz. Als je iedere cycle omschakelt dan haal je 500Hz met een cycletime van 2ms. Als je een duty cycle van 2% mogelijk wil maken zal je moeten zorgen dat er 49 'off' cycles tegenover iedere 'on' cycle staan. In totaal 50*2=100ms, dus 10Hz.
Inmiddels heb ik de PLC (met hulp van een medetweaker) aan de praat. Super simpel programma in gegooid dat iedere cycle de output switched van een 750-515. Dat geeft dit beeld op de oscilloscoop:
[Afbeelding]
166Hz dus = cycle time van 3ms (3ms 'on', 3ms 'off').
Ik heb er ook nog een 'freewheeling' programma van proberen te maken maar die komt ook niet verder dan 166Hz, waarschijnlijk omdat de output module 3ms nodig heeft voor de switch oid? Kanttekening bij het experiment is ook nog dat het voltage in die 3ms zakt naar 19,7V. Dus 'off' is nog niet echt uit.
Niet bruikbaar voor PWM iig tenzij het apparaat dat je aanstuurt bijzonder flexibel is.
Iig leuke exercitie. Weer terug naar m'n HTS mechatronica tijd
Heeft dat niet te maken of dat circuit belast wordt of niet?Kanze schreef op woensdag 18 maart 2020 @ 14:10:
[...]
Ah zo begrijp ik wat je bedoelde. Je kan inderdaad op die manier een PWM signaal produceren. Interessant dat beeld met je oscilloscoop. Vermoedelijk zet de PLC op die uitgang het voltage net laag genoeg zodat het voor nul wordt aangenomen in een extern circuit. Helemaal naar nul volt zal waarschijnlijk te veel slijtage veroorzaken.
Dat idd. De PLC schakelt de output meteen uit, maar dat wil niet zeggen dat alles spanning/lading ook meteen weg is. Deze kan in mijn setup nergens heen.smaertens schreef op woensdag 18 maart 2020 @ 14:27:
[...]
Heeft dat niet te maken of dat circuit belast wordt of niet?
Top, het ding werkt ;-). Had je misschien ook gemeten wat het stroomverbruik is uit de 230V en uit de stuurspanning? Dat deel was me in datasheet niet zo duidelijk (loopt dat alleen als relais actief is of is er ook een ruststroom wanneer alle uitgangen uit zijn....).Kanze schreef op zondag 15 maart 2020 @ 00:56:
[...]
Ik heb nog eens tijd gevonden om die Eltako te testen. Beelden zeggen toch altijd meer dus hieronder het filmpje;
Een 750-880 is enkel compatibel met Codeys V2 en niet Codesys 3.5, Codesys v2 is gratis maar veel beperkter dan dan codesys3.5. Ik heb in de tijd ook geprobeerd om met codesys v2 en modbus iets stabiel in gang te krijgen met HA maar ben toch tot de conclusie gekomen dat codesys v2 en modbus teveel beperkingen hadden.hindrikv schreef op maandag 23 maart 2020 @ 22:05:
Ik ben erg enthousiast geworden over domotica icm een plc.
Nu kan ik voor een leuke prijs tweedehands een 750-880 met meerdere modules krijgen.
Mijn idee is om deze te koppelen met hassio op een raspberry pi door middel van modbus.
Hassio voor de frontend en informatie van internet halen. De plc voor het "domme" werk, licht schakelaar aan - > lamp aan - > terugkoppelen naar hassio.
Nu vraag ik mij nog af hoe het programmeren van de plc werkt. Lukt dit met de gratis versie van codesys? Of heb ik hier dure software pakketen voor nodig?
In mijn opstelling is de voedingsspanning eveneens 24VDC.sjoerd1980 schreef op maandag 23 maart 2020 @ 21:48:
[...]
Top, het ding werkt ;-). Had je misschien ook gemeten wat het stroomverbruik is uit de 230V en uit de stuurspanning? Dat deel was me in datasheet niet zo duidelijk (loopt dat alleen als relais actief is of is er ook een ruststroom wanneer alle uitgangen uit zijn....).
Als je van nul wil beginnen zou ik meteen voor een controller uit de PFC200 serie gaan. Iets prijziger als een 750-880 maar werken met WAGO's éCockpit is wel zo prettig en bovendien de facto gratis. Je kan de volledig functionele trial versie van éCockpit eenvoudig terug op 30 dagen zetten en je software op de PLC blijft gewoon doordraaien.hindrikv schreef op maandag 23 maart 2020 @ 22:05:
Ik ben erg enthousiast geworden over domotica icm een plc.
Nu kan ik voor een leuke prijs tweedehands een 750-880 met meerdere modules krijgen.
Mijn idee is om deze te koppelen met hassio op een raspberry pi door middel van modbus.
Hassio voor de frontend en informatie van internet halen. De plc voor het "domme" werk, licht schakelaar aan - > lamp aan - > terugkoppelen naar hassio.
Nu vraag ik mij nog af hoe het programmeren van de plc werkt. Lukt dit met de gratis versie van codesys? Of heb ik hier dure software pakketen voor nodig?
[ Voor 39% gewijzigd door Kanze op 24-03-2020 13:24 ]
Bedankt voor je reactie!MichVw schreef op dinsdag 24 maart 2020 @ 11:23:
[...]
Een 750-880 is enkel compatibel met Codeys V2 en niet Codesys 3.5, Codesys v2 is gratis maar veel beperkter dan dan codesys3.5. Ik heb in de tijd ook geprobeerd om met codesys v2 en modbus iets stabiel in gang te krijgen met HA maar ben toch tot de conclusie gekomen dat codesys v2 en modbus teveel beperkingen hadden.
Uiteindelijk aan de slag gegaan met een PFC200 en een MQTT library en daar zijn de mogelijkheden eindeloos. Een goed voorbeeld hiervan dat je eventueel zelf kan gebruiken:
https://github.com/Michie...e/HomeAutomation.CoDeSys3
Als je wat zoekt kan je een PFC200 ook op de kop tikken voor een prijsje (€200-€400). Zeker meer dan een 750-880 maar veel krachtiger en de meerprijs zal je veel tijd besparen maar programmatie toe om alles stabiel te krijgen.. MQTT is gewoon vele malen krachtiger dan Modbus
De beperkingen zitten hem in het feit dat modbus een polling protocol is. Je gaat om de zoveel tijd aan de PLC gaan vragen wat z'n status is en/of dat ie iets nieuws heeft.hindrikv schreef op dinsdag 24 maart 2020 @ 17:24:
[...]
Bedankt voor je reactie!
Ik wil de 750-880 vooral gebruiken om te praten via modbus. Wat voor soort beperkingen bedoel je als ik wel voor codesys 2 ga?
Normaal kan je het doen vanuit Codesys, vanonder naar PFC200 en dan kan je zo updaten.UglyDinosaur schreef op woensdag 25 maart 2020 @ 12:52:
Ik krijg het hier niet stabiel; vrees ik
Ik ga eens proberen de firmware van de PFC200 te updaten. Is er iemand die weet hoe je dit met Codesys Web Based Management kan doen? Alle how-to's die ik kan vinden zijn voor de WAGO interface...
Hier een 750-881 PLC in gebruik die via Modbus TCP aan HA (home-assitant) hangt en aan een PV inverter en aan een Arduino voor lichtmeting, en daar komt nog temperatuur bij op den duur.hindrikv schreef op dinsdag 24 maart 2020 @ 17:24:
[...]
Bedankt voor je reactie!
Ik wil de 750-880 vooral gebruiken om te praten via modbus. Wat voor soort beperkingen bedoel je als ik wel voor codesys 2 ga?
Ik denk niet dat je hiermee de firmware kan updaten. Ik heb ondertussen via Wago de nieuwste firmware gekregen met instructies om via SD kaart te updaten. Nu merk ik wel net op de pagina van de CODESYS Control for PFC200 SL dat ze hier maar tot versie 12 van de firmware ondersteunen....MichVw schreef op woensdag 25 maart 2020 @ 17:03:
[...]
Normaal kan je het doen vanuit Codesys, vanonder naar PFC200 en dan kan je zo updaten.
PLC met de 'modernste' programeer interface zijn die van Beckhoff..aaahaaap schreef op zaterdag 28 maart 2020 @ 21:53:
Goedenavond allen, volg dit topic al een tijdje en ben de zoveelste met wat vragenHoop dat jullie me een beetje op weg kunnen helpen.
Ik ben van plan m'n domotica setup te updaten van de huidige draadloze (zigbee + MQTT) configuratie naar een bedrade setup waarbij de primaire logica (schakelaar a schakelt lampen x en y, etc) in de centrale controller zit en de controller acteert op MQTT berichten en zijn state naar MQTT publisht. Hierbij zal de "higher level" logica via iets als Home Assistant gedaan worden.
Hiervoor overweeg ik gebruik te maken van PLCs of van een programmeerbare controller (waarschijnlijk Arduino based, voornamelijk omdat ik verder eigenlijk geen andere opties ben tegengekomen) en ik vroeg me af wat jullie mening hierover is.
Kwa hardware gaat m'n voorkeur uit naar PLCs, met name vanwege de hoge mate van betrouwbaarheid en de kant en klare bouwblokken en integraties die geen grote tijdsinvestering aan de softwarekant nodig hebben. De modulariteit zie ik, ondanks m'n relatief bescheiden requirements kwa inputs en outputs, ook als een pluspunt.
Daarnaast biedt de opzet van @MichVw zo te zien een gode start voor de functionaliteit die ik zoek.
De softwarekant lijkt helaas een heel ander verhaal. Ten eerste zie ik voor nagenoeg alle PLC's alleen maar GUI programma's die ook nog eens alleen maar beschikbaar zijn voor Windows. De Siemens LOGO! controllers lijken hierop de uitzondering door hun JAVA gebaseerde software maar die ondersteunen voor zover ik heb kunnen vinden weer geen MQTT.
Kort door de bocht ben ik een "moderne" software development werkwijze gewend (dus sources in git, bouwen via CLI en automatisch deployen) en ditzelfde principe is ook een vereiste voor m'n home automation setup. Dit is iets dat erg ver af lijkt te staan van de software om PLCs meete programmeren die ik tot nu toe heb gezien. Ik hoop dat ik hiermee niemand voor de schenen schop, maar het voelt allemaal een beetje als 10+ jaar geleden :x
Daarnaast draaien al m'n PCs op Linux en heb ik dus niks aan Windows only programma's. WINE is eventueel een optie maar de vraag is of dat goed werkt voor alle functionaliteit.
Op dit vlak lijkt een programmerbare controller (op basis van bijvoorbeeld Arduino) een stuk normaler/prettiger om mee te werken, je werkt aan je sources in je favoriete editor, commit ze, runt `make` of `platformio run` en je krijgt een gecompilde firmware voor op je controller.
Anyway, lang verhaal, om het conreet te maken, dit zijn de vragen die ik heb:
- Is het mogelijk op zo'n manier te werken met PLCs? Heeft iemand hier ervaring mee?
- Is er Linux compatible software om PLCs te programmeren?
- Zijn er CLI tools om de code voor de PLC te valideren en te uploaden naar de PLC?
- Heeft er iemand gekozen voor een microcontroller gebaseerd systeem ipv een PLC? Zo ja, hoe bevalt het? Of, als je daarna alsnog geswitcht bent naar een PLC, wat beviel er niet?
[ Voor 28% gewijzigd door AUijtdehaag op 29-03-2020 11:11 ]
Apple iPhone 17 LG OLED evo G5 Google Pixel 10 Samsung Galaxy S25 Star Wars: Outlaws Nintendo Switch 2 Apple AirPods Pro (2e generatie) Sony PlayStation 5 Pro
Tweakers is onderdeel van
DPG Media B.V.
Alle rechten voorbehouden - Auteursrecht © 1998 - 2025
•
Hosting door TrueFullstaq