Znaleziono 8 wyników

autor: tuxcnc
26 mar 2023, 21:55
Forum: Automatyka przemysłowa
Temat: OpenPLC
Odpowiedzi: 14
Odsłony: 2525

Re: OpenPLC

Ściągnąłem dzisiaj program, zainstalowałem na Xubuntu 22.04 i działa...
Znaczy się, sprawdziłem tylko na ESP32 i ESP8266.
Co ciekawe, w paczce są pliki z datą 15 listopada, czyli niewiele późniejszą niż mój poprzedni wpis w tym temacie.
autor: tuxcnc
27 paź 2022, 23:29
Forum: Automatyka przemysłowa
Temat: OpenPLC
Odpowiedzi: 14
Odsłony: 2525

Re: OpenPLC

Sprawdziłem ESP8266.
Wgrywa się i działa, tylko coś z pinami jest pomieszane.
LED mi miga na %QX0.0, a to jest pin GPIO16...
Podejrzewam, że w opisie podane są nie piny ESP8266, ale piny Arduino, gdzie D0 to właśnie GPIO16, ale teraz nie chce mi się sprawdzać.
W każdym razie to nie jest wielki problem i da się dojść ładu w godzinę, albo i szybciej...
autor: tuxcnc
27 paź 2022, 18:18
Forum: Automatyka przemysłowa
Temat: OpenPLC
Odpowiedzi: 14
Odsłony: 2525

Re: OpenPLC

Sukces.
Umiarkowany, ale jednak sukces.
Zacząłem dłubać w ArduinoIDE i stwierdziłem, że "płytki" STM32 są oznaczone jako "deprecated", czyli przestarzałe, oraz że zaleca się zainstalować zupełnie inne https://github.com/stm32duino/wiki/wiki/Getting-Started.
Te zupełnie inne i nowsze nie używają bootloadera, tylko programatora STlink.
W sumie to programator trzeba i tak mieć, a przynajmniej odpada szukanie właściwych bootloaderów, co jest jawnym masochizmem.
Do pracy potrzeba jeszcze zainstalować STM32CubeProgrammer https://www.st.com/en/development-tools ... eprog.html, który się instaluje z folderze /usr/local, a tam ArduinoIDE go nie szuka, więc nie widzi. Można pliki przekopiować do ~/ albo /opt, można też wyedytować odpowiedni plik (wszystko widać na zrzucie, więc pisać więcej nie będę).
Obrazek
Kiedy już STM32 zacznie działać w ArduinoIDE, można się zająć OpenPLC.
Akcja jest taka, że OpenPLC nie umie użyć STlink, więc nie ma sensu kombinować i trzeba się zadowolić opcją "Compile only".
Obrazek
Tutaj problemy są dwa.
Pierwszy, że nie możemy usunąć z ArduinoIDE tych przestarzałych "płytek", bo OpenPLC będzie chciał z nich skorzystać. (Na szczęście nowe i stare nie gryzą się ze sobą.)
Drugi, że jak wiele rzeczy w OpenPLC, funkcja kompilacji też jest popieprzona. Niby wyświetla się komunikat gdzie zapisano skompilowany program, ale znajdziemy tam tylko plik elf, natomiast nie ma ani bin, ani hex... Oczywiście te pliki są tworzone, tyle tylko że w tymczasowym folderze, o którego istnieniu użytkownik nie musi wiedzieć...
Tutaj też wszystko widać, tylko dodam, że chodzi o pliki z "Baremetal.ino" w nazwie, i że są one nadpisywane po każdej kompilacji dowolnego programu, więc trzeba je sobie skopiować w bezpieczne miejsce...
Obrazek
Jak już pisałem, w OpenPLC mamy do wyboru tylko dwie płytki, F103CB i F411CE, które są stosunkowo drogie, natomiast nie ma tanich F103C6 i F103C8 (np. oznaczanych CKS). Tutaj nie jest aż tak źle, ponieważ kiedy się używa programatora, to CB i C8 różnią się wyłącznie wielkością pamięci, więc program skompilowany na CB powinien działać na C8, jeśli tylko nie przekroczy 64 kB...
Niestety, C6 oprócz mniejszej pamięci ma jeszcze wycięte kilka narządów i działać z OpenPLC nie będzie. Podejrzewam, że program chce używać nieistniejącego timera, ale w sumie to nieistotne.

Podsumowując, użyć należy Xubuntu 20.04 Focal Fossa, a do STM32 programatora STlink.
Jeśli program wspiera ATmega, STM32 i ESP32, to już jest w zupełności wystarczający zestaw.
Jak będę miał nastrój, to sprawdzę jeszcze ESP8266. Płytkę z takim procesorem można kupić już za 10 PLN, tylko sam nie wiem czy warto aż tak dziadować, kiedy ESP32 jest tylko dyszkę droższy... Może rozsądniej jest robić wszystko na ESP32 i nie mnożyć bytów...
System działa na maszynie wirtualnej, a porty USB udostępniają się bezproblemowo.

Tym razem to Windows przegrał.
Zapewne tam też da się do wszystkiego dojść, ale teraz to już nie widzę motywacji.
autor: tuxcnc
26 paź 2022, 22:36
Forum: Automatyka przemysłowa
Temat: OpenPLC
Odpowiedzi: 14
Odsłony: 2525

Re: OpenPLC

Doszedłem do wniosku, że jednak trzeba spróbować jeszcze raz.
Tym razem zainstalowałem Xubuntu 20.04.5.
Najpierw uruchomiłem obsługę ESP32 na ArduinoIDE.
W tej dystrybucji standardowo jest zainstalowany python3, ale brakuje pyserial.
Trzeba najpierw zainstalować pip3, a potem za jego pomocą pyserial.
Po tej operacji ArduinoIDE obsługuje ESP32 i wgrałem bez problemu arduinowy Blink, z tym że LED_BUILTIN trzeba zastąpić cyfrą 2, bo tutaj LED jest podpięty do GPIO2.
Potem uruchomiłem skrypt instalacyjny OpenPLC, który doinstalowuje python2 i inne zależności.
Tym razem wszystko zadziałało i wgrałem Blink z przykładów OpenPLC, tylko tutaj trzeba wpisać w odpowiednie "Location" (to od blink-led) "%QX0.1" co też odpowiada pinowi GPIO2, tylko tutaj jest liczone od zera.
Natomiast STM32 nadal nie działa...
Dzisiaj więcej kombinować już nie będę.
autor: tuxcnc
25 paź 2022, 12:32
Forum: Automatyka przemysłowa
Temat: OpenPLC
Odpowiedzi: 14
Odsłony: 2525

Re: OpenPLC

Pod Windows udało mi się wgrać Blink do ESP32, co jest wiadomością wyjątkowo dobrą, bo to bardzo tani (~20 PLN), ale też potężny procesor, nieporównywalny w żaden sposób z ośmiobitowymi Atmelami.
Natomiast z STM32 jest problem, może to tylko niewłaściwy bootloader, ale płytka jest wykrywana przez Windows jako Maple 003, nie ma zainstalowanych sterowników i OpenPLC jej nie widzi... Tutaj to wielkiego płaczu nie ma, bo "obsługiwane" płytki to F103CB i F411CE, czyli stosunkowo drogie. Być może problem da się ominąć przez "wygeneruj tylko kod" (czy coś w tym stylu) i skompilowanie go w normalnym środowisku.

Natomiast pod LInux klęska na całym froncie.
Jak pisałem sam edytor się uruchamia i da się wgrać do Arduino na Atmega, ale na tym chyba koniec możliwości.
Problemem zapewne jest (jak zwykle) python.
Python to nie jest zwykły burdel, to jest burdel w którym każdy z gości przestawia meble po swojemu...
Mam już całkiem sporą kolekcję programów w pythonie, których uruchomić nie sposób, bo jak się jedno naprawi, to się drugie pieprzy...
Po prostu są programy, które do pracy wymagają pythona w stanie "na dzień kompilacji", a jeśli są w systemie biblioteki starsze albo nowsze, to dostajemy masę debilnych komunikatów o błędach, z których absolutnie nic nie wynika...
Tutaj chyba jest ten problem, że OpenPLC działa pod python2, ale narzędzia Espressif pod python3.
Jak już pisałem, pythony lubią się gryźć i wychodzą cuda.
Miałem kiedyś taką hecę, że program uruchamiał się w python2, ale biblioteki otwierał z python3, mimo tego że swoje miał poprawnie zainstalowane...
Zainstalowałem w Xubuntu 19.10 obsługę ESP32 w ArduinoIDE, ale wgrać na płytkę niczego nie można. Niby wyświetla jakieś błędy, ale z kategorii debilnych i niczego nie mówiących, co jest specjalnością pythona...
Natomiast w Xubuntu 22.04 (którego używam na co dzień) jest wyłącznie python3 i ESP32 w ArduinoIDE jest obsługiwane prawidłowo...
Tutaj Windows wypada lepiej, ale nie dlatego żeby był lepszy, tylko dlatego że nie ma wbudowanego pythona. Po prostu wszelkie potrzebne biblioteki pythona muszą być wbudowane w program, więc są we właściwych wersjach...

Autorzy OpenPLC pracują nad przejściem na python3, ale póki co niespecjalnie im to wychodzi i wersja developerska w żaden sposób nie nadaje się do żadnej pracy.
Ale wiele potężnych narzędzi open source zaczynało jeszcze gorzej...
autor: tuxcnc
24 paź 2022, 22:21
Forum: Automatyka przemysłowa
Temat: OpenPLC
Odpowiedzi: 14
Odsłony: 2525

Re: OpenPLC

mineque pisze:
24 paź 2022, 21:16
jednak to było 155e sorry mój błąd.
A do tego moduł taki, moduł sraki i się robi pięćset euro...
Ja oczywiście nie mam nic przeciwko takim rozwiązaniom, wręcz przeciwnie, czasem lepiej tyle zapłacić i zapomnieć o problemie, ale są też takie sytuacje gdy jest to cena zaporowa...
O programie, który przedstawiłem wiele nie wiem, ale udało mi się go uruchomić i wgrać prosty projekt do Arduino Uno, więc na pewno jakąś użyteczność ma.
Dodatkowym atutem są walory edukacyjne, bo na pewno łatwiej się nauczyć języka drabinkowego niż programowania w C...
A naukę zawsze lepiej zaczynać za darmo...
autor: tuxcnc
24 paź 2022, 20:21
Forum: Automatyka przemysłowa
Temat: OpenPLC
Odpowiedzi: 14
Odsłony: 2525

Re: OpenPLC

Jak chcecie sobie pogadać co można sobie kupić i za ile, to sobie załóżcie swój wątek, zamiast śmiecić w moim.
autor: tuxcnc
24 paź 2022, 14:59
Forum: Automatyka przemysłowa
Temat: OpenPLC
Odpowiedzi: 14
Odsłony: 2525

OpenPLC

Zupełnie przypadkiem trafiłem na dość ciekawy projekt https://openplcproject.com/download/
Od razu uprzedzam, że ciekawy, ale paskudnie spartaczony.
Nawet te wersje, które można ściągnąć ze zlinkowanej strony nie są najnowsze, zawierają błędy, i pierwszą czynnością powinno być uaktualnienie (File->Check for updates), taki tam burdel...
Najpierw próbowałem uruchomić wersję dla Linuksa, na dzień dobry zaczęły się schody...
Program korzysta z python2, który jest przestarzały i od dwóch lat niewspierany. Niektóre dystrybucje Linuksa pozwalają na równoczesne zainstalowanie python2 i python3, ale efekty są trudne do przewidzenia, bo obie wersje gryzą się ze sobą i nigdy nie wiadomo które pliki się uruchomią...
Tak więc na Xubuntu 22.04 nawet nie próbowałem, ale mam na maszynie wirtualnej Xubuntu 18.04, w którym python2 jest standardem.
Niestety du** blada...
Błąd z kategorii debilnych ale powszechnych, czyli zmajstrowanie kretyńskich zależności...
Otóż program kompilowany na określonej dystrybucji potrafi być zależny od biblioteki glibc w ściśle określonej wersji, z czym właśnie tutaj mamy do czynienia.
Oczywiście można podłożyć glibc z innej dystrybucji, ale to pomysł wyjątkowo głupi, bo na pewno coś innego działać przestanie...
Tak więc 18.04 odpada...
Ale zanim w ogóle do tego doszedłem, to byłem święcie przekonany, że program się wiesza i postanowiłem zainstalować wersję na Windows.
Windows 11, instalacja bez problemów, ale przy próbie wgrania na płytkę Arduino Uno program stanął dęba jak pod Linuksem.
Komunikat błędu z kategorii debilnych i mylących, że czegoś tam się nie da usunąć bo inny program tego używa...
Wyjaśnienie znalazłem zupełnym fuksem i nigdy bym się tego nie domyślił...
Otóż, po poleceniu wgrania do ściśle określonej płytki, program ściąga wszelki możliwe kompilatory i inne śmiecie, także do tych płytek, których nigdy na oczy nie widzieliśmy i nigdy nie użyjemy...
W sumie jest to dobrze ponad gigabajt kodu, co przy dobrych wiatrach może trwać godzinę...
Żeby było weselej, zamknięcie programu nie powoduje zabicia procesów potomnych, które nadal ściągają pliki w tle.
W tej sytuacji, po ponownym uruchomieniu programu nie da się nic zrobić, bo faktycznie "inne programy" korzystają z tych samych plików które należy ściągnąć...

Czyli, po zainstalowaniu programu robimy jego update, po czym uruchamiamy wgrywanie na płytkę i cierpliwie czekamy aż skończy...

Po ściągnięciu wspomnianego gigabajta program rozpakowuje i instaluje pliki do folderu arduino15, co by wskazywało, że najpierw należy zainstalować ArduinoIDE, po czym zajęte jest prawie siedem gigabajtów na dysku, co trzeba mieć na uwadze przed instalacją...
Jak wspomniałem totalny debilizm.
Po tym program działa jak można się spodziewać...

Wróćmy do Linuksa.
Po doświadczeniach z instalacją na Windows wiedziałem już wszystko co powinienem.
Wybór padł na Xubuntu 19.10, czyli ostatnią dystrybucję z python2 w standardzie.
Tu się zaczęły poważniejsze schody, bo opiekunów Ubuntu po prostu posrało...
Wszystkie starsze wersje oprócz LTS zostały usunięte z serwerów, zarówno pliki instalacyjne iso, jak i repozytoria...
Czyli Xubuntu 19.10 najpierw nie zainstalujemy, bo nie mamy z czego, a potem nie będziemy mogli używać, bo repozytoria zostały usunięte z serwerów Canonical...
Na pierwsze receptą jest szukać. Ja akurat znalazłem plik iso w swoich backupach, ale gdzieś w internecie istnieją jakieś kopie...
Na drugie, też trzeba szukać, ja znalazłem http://old-releases.ubuntu.com/ubuntu/.
Po prostu w pliku /etc/apt/sources.list należy podmienić adresy repozytoriów, po czym apt zacznie normalnie działać.
Po zainstalowaniu ArduinoIDE oraz OpenPLC wszystko zacznie działać jak pod Windows.
Nie wiem czy da się zainstalować na Xubuntu 20.04 i nie mam ochoty sprawdzać.

Wygląda to tak:
Obrazek
Xubuntu 19.10 jest uruchomiony na maszynie wirtualnej (quemu/kvm).
Okno w lewym dolnym rogu jest oknem gospodarza (Maszyna wirtualna -> Przekierowanie urządzenia USB) i umożliwia dostęp do urządzeń USB gospodarza z poziomu systemu operacyjnego gościa.
Reszta widocznych okien należy do systemu gościa.
W OpenPLC Editor jest otwarty plik Blink z przykładów.
Ten plik skompiluje się i wgra do Arduino Uno, ale LED migać nie będzie, bo plik przykładu ma charakter uniwersalny i nie ma przypisanych fizycznych pinów do sygnałów. W przypadku Uno trzeba do odpowiedniej kratki "Location" wpisać "%QX0.3", co akurat odpowiada pinowi 13 Arduino.
Opis dla różnych płytek jest tutaj: https://openplcproject.com/docs/2-4-phy ... ddressing/
Jak widać lista obsługiwanego sprzętu jest dość długa...

I na razie to by było na tyle.

Wróć do „OpenPLC”