Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Randy

Pages: [1] 2
1
Support Questions / Re: EthernetIPforCLXCom1 "Invalid Tag"
« on: February 05, 2015, 06:47:28 PM »
I also found I had version 2.94.  It has the same problem of not being able to read more than 65 elements of an array as 2.97e

2
Support Questions / Re: EthernetIPforCLXCom1 "Invalid Tag"
« on: February 05, 2015, 06:27:36 PM »
I am porting a project from 3.70 to 3.97e
I have downloaded and installed the latest dll above but still have a problem.

I have a UDT name HMI with a REAL[800]

With version 3.70 I could read the entire array

With version 3.97e I can only read the first 65 elements.

Below is code.  Click the button until N = 66



 Public C As New AdvancedHMIDrivers.EthernetIPforCLXCom

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        Static N As Integer = 60

        If C.IPAddress <> "192.168.1.6" Then
            C.DisableSubscriptions = True
            C.IPAddress = "192.168.1.6"
        End If

        Dim Tag1 = "HMI.REAL[0]"

        Dim S() As String = C.Read(Tag1, N)
        MsgBox(N & "  " & S(N - 1))
        N += 1
    End Sub


3
Support Questions / Ver 3.8 Driver / Control Split
« on: November 06, 2014, 02:43:32 PM »
I am not sure this qualifies as a bug or is as intended but wanted to make sure you are aware.

I noticed that MfgControl.AdvancedHMI.Drivers.dll  in the AdvancedHMIDrivers project requires dlls in the new AdvancedHMIControls project.

MfgControl.AdvancedHMI.Drivers.dll needs not only MfgControl.AdvancedHMI.Controls.dll but also needs the AdvancedHMIControls project dll.

The AdvancedHMIControls project has references to the AdvancedHMIDrivers project indicating AdvancedHMIControls depends on AdvancedHMIDrivers

The AdvancedHMIDrivers project does not have references to the AdvancedHMIControls project leading one to believe that AdvancedHMIDrivers would stand alone (as before)

I usually only update the drivers in my application when a new version comes out so now it appears that AdvancedHMIControls and AdvancedHMIDrivers will need to be updated together.

I am not sure if that was your intent.  This was a bit confusing for me and this kind of circular reference may be confusing or cause problems in the future.

4
I am writing a list of tags (a Recipe) sequentially with .Write to a ControlLogix PLC.  I often get the error "Send que full, may have lost connection or data request too fast."  If I get this error I wait a while and then resend the tag that created the error and the subsequent tags.  Unfortunately it appears that occasionally some data is still not making it to the plc.  Is there a way to know ahead of time if the que is full and avoid the error altogether?

5
I have successfully used AHMI with L6 series CPU programmed with RSLogix 5000.  I was looking at the L7 series and noted they are programmed with Studio 5000.
Has anyone tested AHMI with the L7 series?  Also has anyone used it with the safety plc versions L6xS or L7xS?

6

  .Read(HMIBOOL[0],1) works but .Read(HMIBOOL[1],1) (and any non zero index)  does not.  I thought this was working on one of the previous versions, but it does not on V3.61 and returns an unhandled exception.

Until now I have always been reading the entire array starting at index 0, but my Bool array has grown and I recently found a read of a large Bool array will only return 2080 bits. ( I have a big machine with a lot of alarm bits) What I thought would be an easy workaround with .Read(HMIBOOL[2080],N)  isn't going to work.  There are other ways for me to work around this,- but if you can and are going to fix these issues, please let me know.  Thanks

7
Support Questions / Bool Array size read limit in EthernetIPforCLXCom
« on: December 02, 2013, 07:44:55 PM »
I am trying to read a Bool array with 2247 elements.  However the returned array from a read is only 2080 elements long.  Is this an arbitrary limitation that can be changed in the next version?  Or is it a fundamental constraint that I will have to work around?

8
Support Questions / Re: Tag Type in EthernetIPforCLXCom
« on: November 27, 2013, 10:59:15 PM »
Great!  I will eagerly await the next version.

9
Support Questions / Tag Type in EthernetIPforCLXCom
« on: November 27, 2013, 06:18:02 PM »
Is it possible to query the tag type in the EthernetIPforCLXCom driver?
For example lets say I have a list of Analog tag names and I need to know if they are a DINT or REAL in the PLC.
Unfortunately many of the tags are part of a UDT, so the tag doesn't show up if I use GetTagList.  If they were not part of a UDT, GetTagList / AbbreviatedType would tell me what I want to know.  Ideally there would be a function that I could pass a single tag name and it would return the tag type.  Does such a function exist?

By the way, ver 3.61 is working really well, I haven't found any problems with it.  Good work.

10
Support Questions / Re: 3.59 Bugs
« on: November 04, 2013, 01:20:17 PM »
The above SINT write error on zero is for ver 3.60

11
Support Questions / Re: 3.59 Bugs
« on: November 04, 2013, 01:19:26 PM »
The SINT write has a new problem, a zero cannot be written.

Me.EthernetIPforCLXCom1.Write("HMISINT", 0)  fails.

12
Support Questions / 3.59 Bugs
« 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.

13
Here are some problems I found in Ver. 3.58  EthernetIPforCLXCom

A SINT does not come back as signed.  A negative number in the PLC shows up as a positive number > 128 after a read.
(INT,DINT, & LINT work OK)

A read of a BOOL array is limited to 2080 elements.  To replicate,create a BOOL array in the PLC with 4000 elements.

Try to read them all and the returned string array is only 2080 elements.


14
I suggest the following changes in EthernetIPforCLXCom.CreateDLLInstance()

Change:

While DLL(i) IsNot Nothing AndAlso DLL(i).EIPEncap.IPAddress <> m_IPAddress AndAlso DLL(i).ProcessorSlot <> m_ProcessorSlot AndAlso i < 11
                i += 1
            End While

to

While DLL(i) IsNot Nothing AndAlso DLL(i).EIPEncap.IPAddress <> m_IPAddress AndAlso i < 11
                i += 1
            End While

Otherwise 2 PLC's with different IP addresses but both having the processor in slot 0 won't get a new instance.

Also  you added:

 DLL(MyDLLInstance).EIPEncap.IPAddress = m_Port

you probably meant:

 DLL(MyDLLInstance).EIPEncap.Port = m_Port


15
I have also found that a read of a bool array is limited to 2080 bits.
in the PLC I have HMI.BOOL[2400]

 Dim dB() As String = fPLC.EthernetIPforCLXCom1.Read("HMI.BOOL[0]", 2330)

returns only 2080 elements in DB

Pages: [1] 2