'Inteligenty' dom ze sterownikiem PLC

Główna => Programowanie => Wątek zaczęty przez: schuey w Styczeń 13, 2019, 08:54:05 pm

Tytuł: Jak nie SSI to Modbus
Wiadomość wysłana przez: schuey w Styczeń 13, 2019, 08:54:05 pm
Po porażkach z SSI zacząłem próbować komunikacji po Modbus z 750-8202 na e!Runtime. Prosta aplikacja w NodeJS wysyłająca zapytania na IP sterownika poprzez paczkę "jsmodbus". Bez problemu jestem w stanie zapytać o adresy specjalne, czyli np.

    client.readInputRegisters(0xFA10, 2).then((res) => {
        console.log('Got it!', res.response);
    })

zwraca mi tablicę [750, 8202]

Zapytanie a adresy IN / OUT niestety zwraca exception code , czyli wg tego dokumentu https://www.kepware.com/getattachment/397676e8-50c3-4712-bb0b-7bdfa0bfa13d/modbus-exception-codes.pdf jest to "nielegalny adres", przykładowy kod niedziałający:

    client.readCoils(7D00, 1).then(res => {
        console.log('Got it!', res.response);
    }).catch(err => {
        console.log(err);
    });

W załączniku zrzut dokumnetacji Wago do której się odwołuje, adresowanie na e!Runtime jest nieco inne niż Codesys - dziwi mnie brak przestrzeni na adresy dla zmiennych %MB0 itp.? Mamy po 32000 na OUT, potem IN a następnie tylko specjalne.

Rozmawiałem już prywatnie z jednym użytkownikiem, doradził zwiększenie adresów o 0x1000 ( decimal 4096 ) ale to także nic nie zmienia.

Czy ktoś z powodzeniem skomunikował się po Modbusie używając e!Runtime i Wago 750-8202?

Pozdrawiam,
WS