Odgrzebuję stary temat, bo mam problem o tej samej tematyce.
Muszę skomunikować sterownik automatyki budynkowej z sterownikiem SAIA PCD3. Nie mam na co dzień do czynienia z plc, także proszę o pomoc. W ograniczonym stopniu mam też dostęp do saia z PG5, także muszę się dobrze przygotować teoretycznie
- mój sterownik automatyki budynkowej jest masterem Modbus
- Saia PCD3 ma być Slave
- komunikacja Modbus RTU
Zgodnie z dokumentacją Saia jeżeli w modbusie jest Slave to w PG5 jest opisywana jako Server. Zatem używam bloczków Server. Do zdefiniowania komunikacji w PG5 używam dwóch bloczków:
- init Server
- def unit server
To sprawdziłem, ustawiłem zgodnie z komunikacją w moim sterowniku i po wgraniu programu do Saia wygląda jakby działało. Bloczki zaświeciły się na zielono

. Mój sterownik też widział, że nie jest sam na magistrali.
Nie zdążyłem natomiast przetestować udostępnianie danych.
Z tego co wyczytałem w manualu do udostępniania danych muszę użyć kolejnego bloczka. Nie spisałem nazwy z PG5 ale nazywał się mapping czy jakoś tak.
Powiedzmy, że chcę udostępnić wyjście OC o adresie w Saia nr 8 i wejście binarne o adresie 16.
Zatem potrzebuję dwóch bloczków mapping.
W pierwszym bloczku w pozycji "Access Type" wybieram "coils".
W cześci Modbus, w pozycji "media type" wybieram "ReadWrite" - chcę mieć możliwość odczytu stanu wyjścia oraz możliwość zmiany tego stanu z poziomu mojego sterownika;
w pozycji "Start Adres" wybieram 1, a w pozycji "Range" 1.
W części PCD, w "Media Type" wybieram "I/O";
w "start adress" wpisuję "8" i w "range" wpisuję "1".
W "area type" wybieram "coils"
Analogicznie w przypadku wejścia nr 16 tylko inne adresy i typy na input.
Adres na modbus to "2" i range "1" a PCD adres "16" i range też "1".
Czy ktoś może spojrzeć na to czy to jest poprawne, czy może adresowania powinno wyglądać inaczej ?
Dzięki!