AdvancedHMI Software
General Category => Support Questions => Topic started by: Randy on October 07, 2013, 07:08:44 PM
-
In CLX driver:
A SINT with value 127 or any negative number cannot be read in Version 3.59
On Ver. 3.58 the PLC value would always be returned as a byte instead of signed byte, but Ver 3.59 throws an exception.
I used the following workaround on 3.58:
reads:
Dim bytA As Byte
For i = 0 To N - 1
bytA = CByte(S(i))
If (bytA < 128) Then
S(i) = CStr(bytA)
Else
S(i) = CStr(bytA - 256)
End If
Next
writes:
If V < 0 Then V = V + 256 '(before writing to PLC)
On Ver 3.58 an empty string could not be written to the PLC, however if the PLC string was empty it could be read.
On Ver. 3.59 an empty string can be written to the PLC, but the last value before the string became empty in the PLC is always read back after that.
I have also noticed it is possible to read a LINT but not write a LINT.
a LINT is a bit odd and not used much, but thought I would mention this in case it can be fixed.
-
The SINT and LINT tag problems will be fixed in version 3.60
-
The SINT write has a new problem, a zero cannot be written.
Me.EthernetIPforCLXCom1.Write("HMISINT", 0) fails.
-
The above SINT write error on zero is for ver 3.60
-
I am able to read Integer Values from the PLC, but any floating point values fail. Using the Digital Meter Panel it shows a value of 0. Using Label1.Text = BatchPLC.Read("F8:0") I get an OutofRange exception. I attached the screenshot.