Modbus reply message

J

Thread Starter

Jason Phillips

I manage a telemetry system that uses 4 frequencies to poll various remote sites. On one of our frequencies communications are fine except every hour or so all sites have communications failure through one polling cycle. Using our HMI software I started a text file to show communications coming through the serial port at the time of the communication failure and on every site the modbus query looked fine but the modbus response displayed, in hex, '[15]'.

I looked in some modbus manuals but could not find out what this value signifies.

If anyone can tell me what this means, I would really appreciate it.

Thanks!
 
More information is required. If you could post your poll and receive messages (or portions thereof) I am sure we can help you.

Regards,
Lorne
 
J

Jason Phillips

Sorry about that. Below is a portion of the poll and receive messages.

11/05 15:38:51 - GooseMb ->
[E4][03][00][00][00][12][D3][F2]
11/05 15:38:52 - GooseMb <-
[15][E0][61][43][1E][8A][09][42][67][0A][B9][41][F1][41][2B][42][95][5C][1D][52][B6]
11/05 15:38:52 - GooseMb ->
[E4][03][00][00][00][12][D3][F2]
11/05 15:38:52 - GooseMb <-
[15][6E][8A][43][13][09][13][42][66][13][40][41][F1][44][78][42][95][5C][1D][A5][3B]
11/05 15:38:52 - GooseMb ->
[E4][03][00][00][00][12][D3][F2]
11/05 15:38:52 - GooseMb <-
[15][6E][8A][43][13][09][13][42][66][13][40][41][F1][44][78][42][95][5C][1D][A5][3B]
11/05 15:38:52 - GooseMb ->
[E4][03][00][00][00][12][D3][F2]
11/05 15:38:53 - GooseMb <-
[15][6E][8A][43][13][09][13][42][66][13][40][41][F1][44][78][42][95][5C][1D][A5][3B]
11/05 15:38:53 - GooseMb ->
[E4][03][00][00][00][12][D3][F2]
11/05 15:38:53 - GooseMb <-
[15][6E][8A][43][13][09][13][42][66][13][40][41][F1][44][78][42][95][5C][1D][A5][3B]
11/05 15:38:53 - GlorMb ->
[E3][03][00][00][00][0A][D2][4F]
11/05 15:38:53 - GlorMb <-
[15]
11/05 15:38:53 - GlorMb ->
[E3][03][00][00][00][0A][D2][4F]
11/05 15:38:53 - GlorMb <-
[15]
11/05 15:38:53 - GlorMb ->
[E3][03][00][00][00][0A][D2][4F]
11/05 15:38:54 - GlorMb <-
[15]
11/05 15:38:54 - GlorMb ->
[E3][03][00][00][00][0A][D2][4F]
11/05 15:38:54 - GlorMb <-
[15]
11/05 15:38:54 - GlorMb ->
[E3][03][00][00][00][0A][D2][4F]
11/05 15:38:54 - GlorMb <-
[15]
11/05 15:38:54 - FlemMb ->
[18][03][00][00][00][0B][06][04]
11/05 15:38:54 - FlemMb <-
[15]
11/05 15:38:54 - FlemMb ->
[18][03][00][00][00][0B][06][04]
11/05 15:38:54 - FlemMb <-
[15]
11/05 15:38:54 - FlemMb ->
[18][03][00][00][00][0B][06][04]
11/05 15:38:55 - FlemMb <-
[15]
11/05 15:38:55 - FlemMb ->
[18][03][00][00][00][0B][06][04]
11/05 15:38:55 - FlemMb <-
[15]
11/05 15:38:55 - FlemMb ->
[18][03][00][00][00][0B][06][04]
11/05 15:38:55 - FlemMb <-
[15]
11/05 15:38:55 - CarmMB ->
[19][03][00][00][00][07][07][D0]
11/05 15:38:55 - CarmMB <-
[15]
11/05 15:38:55 - CarmMB ->
[19][03][00][00][00][07][07][D0]
11/05 15:38:55 - CarmMB <-
[15][07]
11/05 15:38:55 - CarmMB ->
[19][03][00][00][00][07][07][D0]
11/05 15:38:56 - CarmMB <-
[74]
11/05 15:38:56 - CarmMB ->
[19][03][00][00][00][07][07][D0]
11/05 15:38:56 - CarmMB <-
[15]
11/05 15:38:56 - CarmMB ->
[19][03][00][00][00][07][07][D0]
11/05 15:38:56 - CarmMB <-
[15]

Thanks!
 
Jason,

The first two bytes of a Modbus reply must echo the first two bytes of the poll message, namely the station number and the function code. The only exception is the possibility of an error response in which case 80 (hex) will be added to the function code. As you can see from the poll response sequence you provided, there is no match on the first two bytes. Because I am not familiar with your configuration I can only speculate. One possibility is that the front end of the message is being truncated. This can happen if you are using a radio based system and you transmit the data before the radio transmitter is stable. One other possibility is that you are sending the poll message when some other station is still replying and you are seeing the tail end of the response message from some other station.

HTH,
Lorne
 
J

Jason Phillips

Lorne,

So, basically [15] means nothing as far as error reporting, correct?

If another station was replying at the same time wouldn't that show up in the diagnostics file for the serial port?

As far as the front end of the message being truncated, are you saying that this could occur because the HMI software is polling the site but the master radio transmitting the data is having a problem transmitting? Could signal interference have something to do with this?

Thanks!

Jason
 
Jason,

>So, basically [15] means nothing as far
>as error reporting, correct? <

That is correct. Unless you see the polled station number and the function code (with possible error bit - 80 hex set) returned as the first two bytes of the message, it is impossible to decode the remainder of the message.

>If another station was replying at the
>same time wouldn't that show up in the
>diagnostics file for the serial port? <

No. Generally the serial port will accept input at any time. It is up to the master software to determine what to do with the received data. There is a very good description of the Modbus protocol at http://www.modicon.com/techpubs/toc7.html.

>As far as the front end of the message
>being truncated, are you saying that
>this could occur because the HMI
>software is polling the site but the
>master radio transmitting the data is
>having a problem transmitting? <

No. If you are using a radio system the radio at the remote must be keyed up prior to sending data. If not enough delay is provided between the radio key up and sending the data the front end of the return message will be chopped off. It is sometimes helpful to monitor the communications at the remote end to determine the source of the bad message. It would be helpful if you could provide more details on your application such as configuration, type (radio, hardwired, etc).

>Could
>signal interference have something to
>do with this? <

It is possible.

HTH,
Lorne
 
Top