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