Author Topic: Random Argument Out of Range on EthernetIPforCLXCom driver  (Read 1019 times)

wrogers721

  • Newbie
  • *
  • Posts: 3
    • View Profile
Random Argument Out of Range on EthernetIPforCLXCom driver
« on: January 06, 2015, 11:07:35 AM »
   I have a small test application that I have left running for the last couple of days.  It is communicating to a ControlLogix processor over EthernetIP.  I am just "running" the app.  I have not compiled it yet.
   It has 15 BIT tags (on BasicIndicators) and 2 REAL tags (on DigitalPanelMeters) that are being read.

   Ever so often (sometimes within 2 minutes, and sometimes hours) it will stop in the SendToSubscriptions routine of the EthernetIPforCLX.vb module.  It stops on the Else line "BitResult(k) - e.Values(k) with an "ArgumentOutOfRangeException was unhandled by user code".  I've attached a screen shot.
   If I hover over the tag "e" and look at the ErrorMessage, it says "Exception of type 'MfgControl.AdvancedHMI.Drivers.Common.PLCDriverException' was thrown."
   If I hover over "k" it sometimes shows a value of -1 and sometimes 0.

   Do you know what could be causing this issue?

Thanks!

Archie

  • Administrator
  • Hero Member
  • *****
  • Posts: 5282
    • View Profile
    • AdvancedHMI
Re: Random Argument Out of Range on EthernetIPforCLXCom driver
« Reply #1 on: January 06, 2015, 11:24:29 AM »
Which version are you using? Version 3.96 had a small change to the CLX driver in the SendToSubscription routine to fix a problem when using BOOL arrays.

wrogers721

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Random Argument Out of Range on EthernetIPforCLXCom driver
« Reply #2 on: January 06, 2015, 11:35:53 AM »
I am using version 3.96, but none of the 15 bits that I'm reading are in an array.  They are all separate tags.

Archie

  • Administrator
  • Hero Member
  • *****
  • Posts: 5282
    • View Profile
    • AdvancedHMI
Re: Random Argument Out of Range on EthernetIPforCLXCom driver
« Reply #3 on: January 06, 2015, 11:44:09 AM »
Try wrapping the code in a Try-Catch block to get you by until I can do some extension testing on it:


                    Try
                        '* All other data types
                        For k As Integer = 0 To SubscriptionList(i).ElementsToRead - 1
                            '* a -1 in ArrayElement number means it is not an array
                            If SubscriptionList(i).PLCAddress.ArrayIndex1 >= 0 Then
                                BitResult(k) = e.Values(SubscriptionList(i).PLCAddress.ArrayIndex1 - ElementNumber1 + k)
                            Else
                                BitResult(k) = e.Values(k)
                            End If
                        Next
                    Catch ex As Exception
                    End Try

wrogers721

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Random Argument Out of Range on EthernetIPforCLXCom driver
« Reply #4 on: January 06, 2015, 12:43:46 PM »
Ok. Thank you for the quick response.
I will give this a try.