-
Notifications
You must be signed in to change notification settings - Fork 1
modbus
to92me edited this page Feb 8, 2015
·
1 revision
modbus je visi sloj protokola preko kojega komuniciramo sa slave mikrokontrolerima, on se osnanja na rs485 koji predstavlja nizi sloj. Posto raspberry pi ne poseduje rs485 koristi se externi IC Max3140 koji nam generise rs485 diferencijalni signal. Komunikacija sa IC Maxom3140 odvija se preko spi protokola koji raspberry pi poseduje.
kompeletna struktura:
modbus
spi
rs485
modbus poseduje dva vida komunijacije:
- setovanje i iscitavanje staja bita ( #define coil bit )
- pisanje ili citanje registara
( note: biti i registri nisu na istim adresama, ne moze se koristiti funkcija za setvanje bita da se promeni neki registar )
adresse:
- slave address je adresa periferije sa kojim zelimo da komuniciramo ( npr. servo motor )
- address je adresa funckije koje zelimo ( npr. za servoe imamo brzinu i poziciju )
api:
sigleton klasa:
static ModbusMaster* getModbusInstance();
upisivanje u registar:
bool ModbusPresetSingleRegister(unsigned char slave_address, unsigned short address, short data);
citanje iz registra:
bool ModbusReadHoldingRegisters(unsigned char slave_address, unsigned short address, unsigned short quantity, short *data);
setovanje bita:
bool ModbusForceSingleCoil(unsigned char slave_address, unsigned short address, signed char data);
citanje stanja bita:
bool ModbusReadCoilStatus(unsigned char slave_address, unsigned short address, unsigned short quantity, signed char *data);