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 - ianfinlay_aus

Pages: [1] 2
1
Thanks Archie,
I notice MaxTicks was removed,
I have swapped out the hardcoded 3000 msec for miRepsonseWait_msec in the three places its used and added :

Code: [Select]
Private miRepsonseWait_msec As Integer = 3000

#Region "EXTENDED PUBLIC PROPERTIES"

    Public Property ResponseWait() As Integer
        Get
            Return miRepsonseWait_msec
        End Get
        Set(value As Integer)
            'default = 3000 (msec)
            miRepsonseWait_msec = value
        End Set
    End Property
#End Region

in all instance of "... .WaitOne(miRepsonseWait_msec)"

2
Thanks Archie

3
PROTOCOL:                MODBUSRTU 
THROUGHPUT:           115200 BAUD
POLL RATE:                1000 MSEC
TAGS.READ.INT16:   16
TAGS.WRITE.INT16:  3 (@ 1000 MSEC)
O/S :                          WIN10

4
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





5
Thanks Archie for your quick reply - appreciated

6
Archie,

To track down and isolate the issue, I decided to simplify and place all tags to use only one instance of the modbusRTU driver

modbuscom_1000msec , and removed the 2 other subscribing instances (3000msec poll rate, 5000 msec poll rate)
and now it works without any loss of comms

I still have modbuscom_DISABLED with disablesubscriptions = true

Hope this helps identify the issue

7
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?







8
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

9
Support Questions / Re: Exposing PollRate property to all controls
« on: September 16, 2015, 07:38:12 AM »
cheers Archie

10
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

11
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

12
HI Archie,
Is there a way to purchase source for the Dll's, for maintenance purposes, much of my work requires me to enter into long term maintenance and support agreements,
and without full source I wouldn't be able to rebuild dll's in a new Visual Studio IDE's, .NET frameworks or O/S's (if and when they are released)
I Hope you understand
Sincerely
Ian

13
Hi Archie,
I am a little confused, how does the above ModbusRTU project fits into the AdvancedHMI 3.5 solution (v398t or v399)?

I can only see the following DLL's that don't have source code for in project AdvancedHMI:
a) ..\AdvancedHMIControls\Support\MfgControl.AdvancedHMI.Controls.dll
b) ..\AdvancedHMIDrivers\Support\MfgControl.AdvancedHMI.Drivers.dll

something is different as the new project uses .NET framework 4.5.2 and not 3.5

Thanks for your support
Ian

14
I sincerely appreciate your efforts

15
Hi Archie,

design time:
modbus rtu control property 'Disable Subscription' = false

I found that without the previous call, I would only get a response from the device (@address 123) being processed when I was already queueing read requests for device 129 or device 130, some latency added in queue
but haven't access to this code

I wanted to add a trace of protocol on code, but the dll doesnt have source code (MfgControl.AdvancedHMI.drivers.dll)
Is it possible to get it?

Pages: [1] 2