Witam wszystkich,
Od jakiegoś czasu bawię się w naukę programowania sterowników plc, do tego celu używam symulatora opartego na fateku, jednak
chciałbym się rozwijać w językach wysokiego poziomu, dlatego pytanie do was koledzy. Jakiego języka najlepiej się uczyć żeby moc połączyć wiedzę z programowania sterowników. Tzn chciałbym moc tworzyć programy, które będą mogły odwzorowywać stan sterownika oraz moc zadawać sygnały oraz odbierać z poziomu komputera, a jeśli się jeszcze to ubierze w jakaś formę graficzna to już będzie miło z góry dziękuje za wszelkie rady.
Wydaje mi się, że odpowiedni będzie C/C++ ze względu na wykorzystywanie w sterownikach i wizualizacjach skryptów w C. Z tego co słyszałem sterowniki Siemensa będzie można programować w C. Prawdopodobnie jest to trend, który będzie narastał.
Polecam Codesys, zawiera wizualizacje.
Również jestem zdania, że języki wywodzące się z C mają przyszłość w PLC przy językach wyższego poziomu. Parę razy nawet już go wykorzystywałem w swojej pracy, gdy był o wiele wygodniejszy od pozostałych dostępnych w SIEMENSIE.
A jak rozpocząć zabawę ? Tzn. jaki sprzęt ? Środowisko programistyczne ?
jak najbardziej jeżyki z rodziny C. Dokładniej zbadaj sobie temat aplikacji Opennesa w TIA portal jest dostępny od wersji TIA 14, do tego potrzebujesz np. Visualstudio i dobra znajomość jeżyka C#
lub Openness scripter
Sam badam temat od kilku dni jest trochę filmików na youtubie.
Jeśli mówimy o Openness to polecałbym równiez zapoznać się z API do reszty produktów Siemensa, w szczególności PLC Sim Advanced.
Dość często spotykam się z osobami, korzystającymi z PLC Sim Advanced, które nie są świadome, ze udostępnia on swoje API.
Po co? A no mozemy napisać własną aplikację do przetestowania modułów naszego programu, przy czym mozemy skompresowac czas i przeprowadzic kilkugodzinny test w znacznie krotszym czasie.
Z glownych funkcji, ktore API udostepnia mamy odczyt wartosci tagow/db/M/I i zapis do tychze, ale rowniez symulacje rack failure czy wyciagniecia modulu wiec mozemy zobaczec czy OB diagnostyczne, ktore zaprogramowaliśmy zachowają się odpowiednio i czy nasz program będzie w stanie obsłuzyc taką sytuację.
Słyszałem, że da się jakoś programować PLC w Python. Ktoś próbował lub coś o tym wie?
Na pewno można bawić się z raspberry pi ale czy PLC też się da?
Niby się da ale to bez sensu, PLC mają pracować szybko i stabilnie, python tego nie zapewnia. Prędzej C++ dla PLC i Python na rPi do zadań związanych z AI/computer vision
Czy do Opennessa i API do PLC Sim Advanced polecacie jakieś materiały spoza strony Siemensa? Zaciekawił mnie temat i chciałem w nim głębiej pogrzebać.
Co do tworzenia takich aplikacji to Python sie jak najbardziej nadaje. Tzn. mam namyśli takie aplikacje które by pozwalały symulować obiekt sterowany przez twój program napisany w PLC. Lub na odwrót. Nawet lepiej jak je robić właśnie w nim bo jest to język który najlepiej sie sprawdza w takich zastosowaniach gdzie trzeba cos szybko i sprawnie napisać. Ale kto co lubi . Jest taki artykuł na iA gdzie ktoś stworzył symulacje prosto z matlab-simulink i symulował jakieś zbiorniki. Python ma chyba nawet jakąś bibliotekę do komunikacji z Fatekiem, ale jej nie używałem. Dla mnie wygodniejsza jest pymodbus.