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.


Topics - ianfinlay_aus

Pages: [1]
1
Hi Support (& Users)

Just wanting to know in advance before I take on any bigger jobs with AdvancedHMI what the comfortable design capacity is?

I imagine the capacity varies from protocol to protocol and affected by poll rate, baud rate, and tag type (bool vs long)  etc

Has a survey been conducted or white paper on this topic available?

I'd hate to agree to do a project to find I've gone beyond the capacity of the product

I'd love to hear from ANYONE who has a working system with details on tag counts

Your experiences Welcome





2
Hi Archie,
I have the following setup (all tags are 40001+ range):
modbusrtucom_1000msec (10 tags)
modbusrtucom_3000msec (2 tags)
modbusrtucom_5000msec (4 tags)
modbusrtucom_DISABLED (16 tags) but with subscriptions disabled

Baud is 115200

I also write to 3 tags every 3 seconds , with a gap of 250msec between them , It is sometimes more frequent if the setpoints are changing (but write loop is limited to 1sec minimum), but in observed tests the setpoints are untouched, therefore only sending writes every 3sec.

I find if I just sit and watch,. when "DLL(MyDLLInstance).SendQueDepth > 10" the driver stops communicating altogether and comes back by itself after about 20-30 seconds, which isn't good as my modbus device stops if the setpoint isnt written to after 5 sec. (I added a method to extract the queue size)

When things are working fine, queue is size 0, but very reliably falls over when queue size starts to grow

Any suggestions?







3
Support Questions / DigitalPanelMeterBlue.SuppressErrorDisplay not found
« on: September 22, 2015, 12:48:59 AM »
Hi Archie,

I am using basiclabels to gather all live plc tag values at various poll rates for the modbusRTU driver
These basic labels are visible at all times (so always forces a poll for data)   

I am doing some custom chart and data logging using the basiclabel.value's as my data source

I also do some more fancy display with the same tag data, but as I didnt want to add an extra burden on the modbus rtu driver.
I have attached all the fancy display readouts (digitalpanelmeterblue) to use a modbusRTU_DISABLED driver instance that has its disable subscriptions = true, and the address range for tags is outside the physical address range used in the actual device. (I tried to use the simulation device but couldn't get it working, so this was the next best thing, I will revist later, but I only tried numeric addresses not alphabetic addresses)

In code I then manually refresh the digitalpanelmeterblue.value's to update the screen

This works fine, except every now and then I get the digitalpanelmeterblue.text showing as offline, but I have no ability to suppress this, as there is no DigitalPanelMeterBlue.SuppressErrorDisplay property

I am using a device called ModbusRTUCom_DISABLED, which has DisableSubscriptions = True , so shoulnt I would expect generate an offline condition at all.
To suppress this, copied code from the momentartyButon.vb to add the SuppressErrorDisplay feature - code below:

I have added the following to displaypanelmeterblue.vb
Code: [Select]

    Private m_SuppressErrorDisplay As Boolean
    <System.ComponentModel.DefaultValue(False)> _
    Public Property SuppressErrorDisplay As Boolean
        Get
            Return m_SuppressErrorDisplay
        End Get
        Set(value As Boolean)
            m_SuppressErrorDisplay = value
        End Set
    End Property

and modified DisplayError() as follows:

Code: [Select]
  Private Sub DisplayError(ByVal ErrorMessage As String)
      [color=red]  If Not m_SuppressErrorDisplay Then[/color]


            If ErrorDisplayTime Is Nothing Then
                ErrorDisplayTime = New System.Windows.Forms.Timer
                AddHandler ErrorDisplayTime.Tick, AddressOf ErrorDisplay_Tick
                ErrorDisplayTime.Interval = 6000
            End If

            '* Save the text to return to
            If Not ErrorDisplayTime.Enabled Then
                OriginalText = Me.Text
            End If

            ErrorDisplayTime.Enabled = True

            Text = ErrorMessage
    [color=red]    End If[/color]
    End Sub

4
Hi Support,
I have about 15 DigitalPanelMeterBlue's on a page, some relating to different aspects of the plant
I'd like to be able to set the backcolour, and when something is in alarm, change the back colour
Cheers

5
Support Questions / Exposing PollRate property to all controls
« on: September 16, 2015, 07:15:21 AM »
Dear Support,
I have noticed BasicLabel and a few other controls have a PollRate property, to throttle the rate of interrogation but other controls don't such as:
 - DigitalPanelMeter
 - DigitalPanelMeterBlue
I have several ModbusRtu address values that don't change often, and others constantly updating, can this be added in future

6
Open Discussion / Source code for MfgControl.AdvancedHMI.Drivers.dll
« on: September 05, 2015, 01:34:43 AM »
Hi ,
I'd like to add a trace on all traffic in my application,
can the source for MfgControl.AdvancedHMI.Drivers.dll be made available?
I'm Trying to work out if there is a delay in outgoing modbus function request or not after the request PDU is added
Cheers
Ian

7
Hi Support,

I am on my first advancedHMI project - so apologies in adv. for not knowing much about your product

I have an application which is a underwater thruster testing station (units are sealed and modbus ID is not always documented)

so need to poll device each address 1-254 sequentially and function read address 40001

The problem is I don't have access to the timeout, and it takes a REALLY long time to get through all the polls,
whereas in Python code is extremely fast  (I am trying to get rid of the Python)


Below is what I have tried:
(Is there anything else I can try? have played with as I imagine I need to adjust the timeout, but this isn't exposed)


    Private Sub BtnFindModbusId_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Try
            'adress 1-254
            Dim bFound As Boolean = False

            ModbusRTUComFind.PollRateOverride = 100
            For id As Byte = 1 To 254
                ModbusRTUComFind.StationAddress = id
                Try
                    lblFindStatus.Text = String.Format("Try ID={0}", id)
                    Dim sVal As String = ModbusRTUComFind.Read("40001")
                    'if unable to read generates exception here ^^^
                    bFound = True
                    tbFoundId.Text = id.ToString()
                    Exit For
                Catch ex As Exception
                    'not read from device, so try next
                End Try
            Next
        Catch ex As Exception
        End Try
    End Sub

Any guidance appreciated

Pages: [1]