Re: Modbus Slave RTU/TCP problem
Posted: Mon Oct 01, 2012 11:57 pm
Hi Mark...
Thank you for your response.
i will try to explain more the issue. I'm programming the Modbus Server in Borland Delphi, using a public dll named "Fieldtalk library". I used this library in another aplication with a Mitsubishi E1061, manufactured by Beijer... identical to Exter T60, and i have no problem with the address map.
Example in my application.... i use this procedure to poll some adresses of the panel....
Obviously, the modbus slave configuration in both panel is the same. (First holding register 40000, adressing 1-based, number of coils 4096)
This code works in the E1061 and crash in the T7A, and like the user AntoineA... works fine while the address we read is less than 2048... but if the address is more than 2048.... then don't work. It is as if the parameter "Number of holdings registers" don't download to the T7A.
I would change the five old E1061 with new T7A in a big factory, but this problem is very serious and now i don't have to do....
If you need more details please ask me.
Thank you for all Mark,
Best Regards,
Thank you for your response.
i will try to explain more the issue. I'm programming the Modbus Server in Borland Delphi, using a public dll named "Fieldtalk library". I used this library in another aplication with a Mitsubishi E1061, manufactured by Beijer... identical to Exter T60, and i have no problem with the address map.
Example in my application.... i use this procedure to poll some adresses of the panel....
Obviously, the modbus slave configuration in both panel is the same. (First holding register 40000, adressing 1-based, number of coils 4096)
Code: Select all
procedure TInfeedThread.Poll;
var string1, string2, string3, string4, string5, string6: string;
begin
Case PollState of
0: SyncReadString ( 2045, 1, string1); //work fine
1: SyncReadString ( 2046, 1, string2); //work fine
2: SyncReadString ( 2047, 1, string3); //work fine
3: SyncReadString ( 2048, 1, string4); //CRASH!!
4: SyncReadString ( 2049, 1, string5); //CRASH!!
5: SyncReadString ( 2050, 1, string6); //CRASH!!
Else PollState := 0;
End;
Inc( PollState );
If PollState > 5 then
PollState := 0;
end;
I would change the five old E1061 with new T7A in a big factory, but this problem is very serious and now i don't have to do....
If you need more details please ask me.
Thank you for all Mark,
Best Regards,