'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

Powrót do strony głównej: www.edom-plc.pl

Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.

Wiadomości - abdenago

Strony: [1]
1
Cześć,

W tym wątku jest taki program, sam z niego korzystam i działa.

2
Sterowanie i Wizualizacje / Odp: Wago PLC a sterowanie bramą garażową
« dnia: Czerwca 26, 2018, 11:22:57 pm »
Ja bym zwierał przekaźnikiem, rozwiązanie najbardziej zbliżone do fizycznego przycisku, najprostrze i najpewniejsze. Ewentualnie jeżeli chcesz się bawić możesz z modułu DO podawać 24v do przekaźnika w silniku bramy, ale to by trzeba sprawdzić bardziej w schemacie silnika.

3
Programowanie / Odp: Odczyt licznika energii (impulsator)
« dnia: Czerwca 11, 2018, 11:54:02 am »
Cześć,

W moim przypadku licznik zamontowawłem odwrotnie, i mierzy ilość prądu oddawanego do sieci (fotowoltaika).
Jak to rozwiązałem, po kolei:
1. wyjście impulsowe podpiąłem do wejścia cyfrowego na sterowniku
2. napisałem program zliczający czas między impulsami, który odpala się za każdym razem gdy impuls zewrze wejście (czyli task, type -> triggered by event). Czas między impulsami zamieniam bezpośrednio na KW.
przykład:

timeout := TIME() - newtime;
newtime := TIME();
timeoutreal:=TIME_TO_REAL(timeout);
IF timeoutreal = 0 OR timeoutreal > 36000 THEN timeoutreal :=36000; END_IF;
MocPV := 3600 / timeoutreal;
MocPV:=ROUND(MocPV, 2);

3. napisałem mikroskrypt w shellu czytajacy wartość zmiennej MocPV:

#!/bin/bash
address=$(curl -s "http://192.168.9.100/PLC/plc_visu.xml" | grep '<variable name=".MocPV">' | grep -o -P "(?<=>).*(?=<)" | sed -r "s/[,]+/|/g")
curl -s --data "|0|1|0|$address|" http://192.168.9.100/PLC/webvisu.htm | sed 's/[\|]//g'


4. skrypt zwraca gotową do wklejenia gdziekolwiek wartość oddawanej mocy. równolegle podobnymi skryptami odczytuję inne wartości które mnie interesują.

5. Całość wrzucam do zabbix'a - nie wiem czemu wybrałem akurat jego - chciałem się nauczyć.

Wynik widać w załączniku:
Zielona krzywa to moc generowana przez panele, pobierana z inwerterów
Niebieska to moc odczytywana powyższym sposobem z odwróconego licznika
czerwona to aktualne zużycie (bazowane na różnicy między zielonym a czerwonym)
różowy to grzejnik 1kw + wentylator które stoją sobie w piwnicy. Zasada taka - jak oddawana do sieci moc osiągnie 6kW, grzejnik ma się włączyć. Jak moc spadnie do 3kW, grzejnik ma się wyłączyć.

Pozdr




4
Programowanie / Odp: WebVisu - czas reakcji
« dnia: Marca 26, 2018, 04:45:20 pm »
webvisu.html odpowiada średnio w czasie 85ms

5
Programowanie / Odp: WebVisu - czas reakcji
« dnia: Marca 26, 2018, 04:40:18 pm »
root@raspberrypi:~# ping 192.168.66.15 -c 8
PING 192.168.66.15 (192.168.66.15) 56(84) bytes of data.
64 bytes from 192.168.66.15: icmp_seq=1 ttl=64 time=0.623 ms
64 bytes from 192.168.66.15: icmp_seq=2 ttl=64 time=0.659 ms
64 bytes from 192.168.66.15: icmp_seq=3 ttl=64 time=0.617 ms
64 bytes from 192.168.66.15: icmp_seq=4 ttl=64 time=0.655 ms
64 bytes from 192.168.66.15: icmp_seq=5 ttl=64 time=0.634 ms
64 bytes from 192.168.66.15: icmp_seq=6 ttl=64 time=0.634 ms
64 bytes from 192.168.66.15: icmp_seq=7 ttl=64 time=0.615 ms
64 bytes from 192.168.66.15: icmp_seq=8 ttl=64 time=0.593 ms

--- 192.168.66.15 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7270ms
rtt min/avg/max/mdev = 0.593/0.628/0.659/0.036 ms

6
Programowanie / Odp: WebVisu - czas reakcji
« dnia: Marca 19, 2018, 11:14:26 pm »
Znalazłem przyczynę. Po chwilach walki z pythonem postanowiłem spróbować wersję jQuery, która zadziałała idealnie i od razu! Jednak python nie dawał mi spokoju. Okazało się, że problemem jest moduł requests, który spowalnia całość. Miejsce które naprowadziło mnie na rozwiązanie:
https://github.com/requests/requests/issues/4278
Po zainstalowaniu wcześniejszej wersji requests zaczęło działać kilka razy szybciej :)
Dziękuję za pomoc, myślę, że temat rozwiązany.

7
Programowanie / Odp: WebVisu - czas reakcji
« dnia: Marca 19, 2018, 07:33:08 pm »
Dzięki, takich informacji potrzebowałem :)
Jednak to nie to - po napisaniu najprostrzego programu na świecie problem nadal wystepował.
Postanowiłem się douczyć, i znalazłem - jako zmienną przypisaną do przycisku ustawiałem bezpośrednio zmienną przypisaną do wejścia/wyjścia w danym module. Gdy zadeklarowałem własne zmienne typu bool i jedną z nich przypisałem do przycisku - zaczęło działać od razu. ta kwestia rozwiązana. Pozostaje temat długiego wykonywania się skryptu, może wkleję poniżej jego treść oraz wynik (przepraszam z góry za śmiecenie):

root@raspberrypi:~# cat skrypt.py
#!/usr/bin/python
import requests     #you might need to install requests separatelly
req = "|0|100"
for num in range (0,99):
        req+= "|"+str(num)+"|2|"+str(num)+"|1|2"
req+= "|"
r = requests.post('http://10.0.0.100/PLC/webvisu.htm', data=req)
print r.text
root@raspberrypi:~# ./skrypt.py
|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|

oczywiście mam tylko jedną zmienną. Gdy zmienię jej wartość na true, pierwsze zero staje sie jedynką.
Gdy w skrypcie ustawię, żeby pobierał tylko jedną zmienną - i tak działa ok 4 sekund.

8
Programowanie / Odp: WebVisu - czas reakcji
« dnia: Marca 19, 2018, 06:36:02 pm »
Tak miałem ustawione - satel był w ostatniej kolejności odśnieżania.
Zrobiłem inaczej, wyczyściłem sterownik przy pomocy funkcji online -> reset (original), widzę po FTP że usunął wszystkie pliki programu, napisałem nowy programik z 4 zmiennymi, obsługującymi dwa dwuwejściowe moduły wejścia i wyjścia, zrobilem jeden przycisk zmieniający wartość wyjścia na false, gdy wejście jest false, i odwrotnie - prościej się nie da. mimo to działa tak samo, odczytanie webvisu trwa 4 sekundy, a wizualizacja tnie. W trybie symulacji oczywiście wszystko ladnie chodzi. Więc musi coś być w samym sterowniku. Czy wiecie może czy jest możliwość przywrócenia całości do ustawień fabrycznych?

9
Programowanie / Odp: WebVisu - czas reakcji
« dnia: Marca 19, 2018, 03:22:41 pm »
Hej,

Wszystko robie lokalnie, czasy odpowiedzi w okolicach 0.500ms więc nie ma tu problemu.
Zauważyłem gdy zaloguję się z codesys i odpalę run, to w okienku tasks obok zadań naliczane są wartości. Nie wnikałem jeszcze czym one są, podejrzewam, że kolejną iteracją wykonania danego tasku. Mam skonfigurowane 3 takie taski: podstawowy, obsługę satel integra (na podstawie innego wątku z forum) oraz komunikację z innym sterownikiem - slave. Po odpaleniu run widzę, że taski "zacinają" się właśnie co kilka sekund na kilka sekund. Poszperam dzisiaj, uproszczę wszystko, pousuwam dodatkowe taski i napiszę czy to ma związek.

10
Programowanie / WebVisu - czas reakcji
« dnia: Marca 18, 2018, 08:49:08 pm »
Cześć,

Na stronie https://www.edom-plc.pl/index.php/pl/wiecej-o-plc/funkcje/186-jeszcze-jeden-sposob-komunikacji-z-plc admin w jak zwykle przystępny sposób opisał działanie rozwiązania Franka Benkerta wraz z możliwością jego zatosowania. Mam jednak problem - czas w jakim pobierane są informacje o wartościach zmiennych.
Według opisu w artykule, przykładowy skrypt zakończył się i podał wynik w 0.2 sekundy. U mnie ten sam skrypt wykonuje się 4 sekundy. Podobnie jak otworzę stronę z wizualizacją, system reaguje na co dziesiąte kliknięcie na przycisk, a po zmianie stanu informuje też ze znacznym opóźnieniem. Gdy zmieniam wartość zmiennej w kodzie wszystko idzie od razu, również operacje (póki co zupełnie nieskomplikowane) jakie wykonuje sam PLC reagując na stan wejść wykonywane są natychmiastowo. Przebiłem się przez menu, ustawienia, forum, internet i nie mam pojęcia co to może być. Spotkał się może któryś z kolegów z podobną sytuacją? zinterfejsowanie tak działającego połączenia mija się z celem, użytkownicy mnie zabiją jak będą chcieli zapalić światło inaczej niż z przycisku :)

11
Tematy ogólne / Odp: Fieldbus coupler
« dnia: Lutego 21, 2017, 07:38:07 pm »
Zastanawiałem się nad powyższymi modułami, jednak martwi mnie odległość między szafami sterowniczymi (kable od szafy centralnej będą miały odpowiednio 20 i 30 metrów). W dokumentacji podali max distance 5m - sugeruje to zastosowanie modułów w jednej szafie lub sąsiadujących szafach w tym samym pomieszczeniu. Skrętki położyłem z dala od kabli energetycznych i doprowadziłem do szaf, opcja z couplerami wydaje mi się najrozsądniejsza. Zobaczymy :D

12
Tematy ogólne / Fieldbus coupler
« dnia: Stycznia 31, 2017, 05:59:23 pm »
Mój pierwszy post na forum - wypada się przywitać (choć czytam od dawna!) :)
Cześć!

Aktualnie buduję domek, a jako że (podobnie do większości z Was) lubię zabawki, po odkryciu strony admina zakochałem się w PLC ;)
Nie będę póki co opisywał szczegółów co sterownik miałby robić, napiszę ogólnie, że sterowanie światłem, roletami i gniazdkami plus integracja z integrą.
Sterownik 750-881 póki co przykręcony do deski działa z modułami jako lab, i jak tylko skończymy ciągnąć okablowanie umieszczam zabawki do szaf.
No właśnie - szaf - dom ma 3 kondygnacje (piwnica, parter, piętro), na każdej z nich umieszczam osobną szafę z której w formie gwiazdy rozchodzić będzie się po danym piętrze okablowanie.
Główny sterownik znajdzie się w szafie w piwnicy, w pozostałych szafach chcę umieścić fieldbus couplery (750-352) które będą działały jako "przedłużenie" systemu. Niestety póki co posiadam tylko jedną sztukę 750-352 i "poluję" na drugą w atrakcyjnej cenie.
I tu pytanie, czy ktokolwiek rozwiązał system w ten sposób? Jakie plusy i minusy widzicie?
Na pewno in plus jest oszczędność kabli.
Na sieci widzę instrukcje i filmy jak zrealizować połączenie sterownik-coupler, czy kojarzycie może czy jest możliwe takie połączenie sterownik-sterownik, gdzie jeden działałby jako coupler? Rozważam to dla sytuacji, gdyby nie udało mi się trafić drugiego 750-352.
A może któryś z forumowiczów ma taki coupler i chciałby się pozbyć?

Pozdrawiam!
PS.
Admin - Świetne forum, świetne pomysły - gratulacje! Masz łeb :)

Strony: [1]