Witam
Próbuję uruchomić protokół Modbus, wybór padł na bibliotekę freemodbus-v1.5.0, udało mi się skompilować program ale teraz jak chcę sprawdzić działanie programu programem Modbus Tester to mam błąd. Właściwie nie wiem czy dobrze skonfigurowałem program.
uC mam podpięty przez RS232 do PCta. Na razie bez obsługi RS485.
![[AVR][C] Uruchamianie protokołu FreeModBus. [AVR][C] Uruchamianie protokołu FreeModBus.](https://obrazki.elektroda.pl/9287378400_1310095202_thumb.jpg)
![[AVR][C] Uruchamianie protokołu FreeModBus. [AVR][C] Uruchamianie protokołu FreeModBus.](https://obrazki.elektroda.pl/9278883300_1310095203_thumb.jpg)
A może program jest tak napisany, że nie pozwala na sprawdzenie działania protokołu? W pliku demo.c mamy:
więc cały czas się wykonuje funkcja eMBPool, która zwraca MB_ENOERR, czyli brak błędów (sprawdzałem).
Próbuję uruchomić protokół Modbus, wybór padł na bibliotekę freemodbus-v1.5.0, udało mi się skompilować program ale teraz jak chcę sprawdzić działanie programu programem Modbus Tester to mam błąd. Właściwie nie wiem czy dobrze skonfigurowałem program.
uC mam podpięty przez RS232 do PCta. Na razie bez obsługi RS485.
A może program jest tak napisany, że nie pozwala na sprawdzenie działania protokołu? W pliku demo.c mamy:
int
main( void )
{
const UCHAR ucSlaveID[] = { 0xAA, 0xBB, 0xCC };
eMBErrorCode eStatus;
eStatus = eMBInit( MB_RTU, 0x0A, 0, 38400, MB_PAR_EVEN );
eStatus = eMBSetSlaveID( 0x34, TRUE, ucSlaveID, 3 );
sei( );
/* Enable the Modbus Protocol Stack. */
eStatus = eMBEnable( );
for( ;; )
{
( void )eMBPoll( );
/* Here we simply count the number of poll cycles. */
usRegInputBuf[0]++;
}
}więc cały czas się wykonuje funkcja eMBPool, która zwraca MB_ENOERR, czyli brak błędów (sprawdzałem).