Jump to content

Data tag overflow & message composer


samJones

Recommended Posts

Hi,


I am trying to read and log the output of the third party device (in this case a LGR trace gas analyser connected to a value manifold also controlled by the PLC) using a US5-B10-T24 PLC.

The device returns 31 columns of data as a 521 character hexademical message.  Of this I need to record at least columns 1, 2, 4, 6 and 8. The first column is a timestamp formatted as "dd/mm/yy hh:mm:ss.sss" and the subsequent columns are data values in scientific notation in the format "x.xxxxxe+/-xx" e.g. 1.56789e-01.

I am able to use message composer and parse message to store this information as integers. For example for each of the data columns I populate data tags for the integer value (i.e. 6 digit integer, int32), decimal position (one digit, unit8) and the value of the exponent (sign and one digit, int8). I can then reconvert this information into real numbers.

During testing this works fine for a message containing up to 5 columns of data, however, when I add a 6th column I encounter a strange problem where by the decimal position data tag for the 1st column appears to inherit the value of the integer data tag for the 6th column. Addition of a 7th column then extends this problem to the 2nd column and so forth. I'm either unable to see a silly (and repeated) mistake in my program or I guess I'm reaching some limit in the PLC's memory. I don't have a good grasp on the processing structure for this device (a hazard of GUIs maybe), so I'm hoping someone here might be able to help me identify the cause of my problem.

I have attached here two programs (split between this and the subsequent post due to size limit), one (lgrC2-C6red) for 5 columns of data and one (lgrC2-C7red) for 6 columns of data. Examples of my problem are as follows:

Examples

lgrC2-lgrC6red program

5 columns (C2 - C6) with each linked in message composer to an integer (lgrC2-6_int), decimal position (lgrC2-6_dec) and exponent (lgrC2-6_exp) data tag works fine.

When receiving the message; C2 = 2.2e2, C3 = 3.3e3, C4 = 4.4e4, C5 = 5.5e5, C6 = 6.6e6, the PLC displays lgrC2-6_dec = 1, lgrC2-6_int = 22 to 66 and lgrC2-6_exp = 2 to 6.

5 column hexadecimal message with control characters


20 20 20 20       

32 2E 32 65 32   

2C 20 20 20 20   

33 2E 33 65 33    

2C 20 20 20 20     

34 2E 34 65 34   

2C 20 20 20 20

35 2E 35 65 35

2C 20 20 20 20

36 2E 36 65 36

0A


lgrC2-C6red program

6 columns (C2 - C7) each linked to an integer (lgrC2-7_int), decimal position (lgrC2-7_dec) and exponent (lgrC2-7_exp) data tag does not work.

When receiving the message; C2 = 2.2e2, C3 = 3.3e3, C4 = 4.4e4, C5 = 5.5e5, C6 = 6.6e6, C7 = 7.7e7, the PLC displays lgrC2_dec = 77, lgrC3-C7_dec = 1, lgrC2-7_int = 22 to 77 and lgrC2-6_exp = 2 to 7.

6 column hexadecimal message with control characters
 
20 20 20 20

32 2E 32 65 32

2C 20 20 20 20

33 2E 33 65 33

2C 20 20 20 20

34 2E 34 65 34

2C 20 20 20 20

35 2E 35 65 35

2C 20 20 20 20

36 2E 36 65 36

2C 20 20 20 20

37 2E 37 65 37

0A

 

Thanks in advance for any input or suggestions,

Sam

lgrC2-lgrC7red.ulpr

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

This site uses cookies. By clicking I accept, you agree to their use.