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

Pages: 1 2 3 [4] 5 6 ... 8
46
Tips & Tricks / Main Menu Driven Project Structure in V3.99s
« on: December 06, 2016, 06:35:17 AM »
A couple new items were added to version 3.99s that make it easier to build main menu driven project. This works by having a main menu form that stays open all the time. This form will contain all of the Form Change navigation buttons.
To use the new items:

- In Solution Explorer, right click the AdvancedHMI project and select Properties
- Under the application tab change the Startup Form to MainMenu

You will now create new forms. Be sure to set the FormBorderStyle to None for all forms. After creating additional forms and Building the project, you can now add menu buttons for them:
- In Solution Explorer, expand down the AdvancedHMI project, then expand down to FormChangeControls\MainMenuDriven
- Double the MainMenu.vb to open in Design View
- From the Toolbox add a MainMenuButton for each new form
- Set the FormToOpen property
- You can also set the OpenOnStartup property for one button to indicate the default startup form

On the MainMenu is an Exit button. This button is used to search for hidden forms to ensure they are properly disposed when closing an application.

The Main Menu form can also be used for "global" style functions such as changing forms based on a PLC value since it stays open and will always keep PLC communications active.

47
Open Discussion / New Version 3.99s Now Available
« on: December 05, 2016, 10:15:50 PM »
This version has quite a few bug fixes and some new controls.

PCCC drivers - fixed problem with reading sub elements of Timers/Counter/Control
DF1 - fixed problem causing RSEmulate to not work on multiple pages
DF1 - AUTO baud find was not working for BCC
Keypad pop up was creating too many event handlers
DF1 driver - If a double 16 was broken into 2 receives a bad checksum was calculated
PCCC - Extract data had a problem with a 82 character length string
PCCC - Re-implemented fragmented reading when request is longer than maximum packet length
OmronDrivers - Fixed a problem when SynchronizingObject was nothing
MainForm - added code snippet to ensure all forms close properly
GroupPanel - Added BackColor3
MessageDisplayByBit - Added LogFile property
PilotLight - Added ValueToWrite property
OmronEthernetFINS - Fixed a problem that would no allow 2 HMIs to talk with same PLC
MessageDisplayByBit - Limit the number of bits to 63 by limiting the PLCNumberOfElements
Added MainMenuButton - See the comment section in the code for its use
Omron Drivers - Added INIFileName property
OmronEthernetFINSCom - fixed a problem in Removing DLL Instance
BasicButton - Limit click to only left mouse button
AdvancedHMIcs project added to solution for those who prefer a C# base
OpcDaCom - Added PollRateOverride property
EthernetIPtoDHRIOforSLCMicro - New driver
MainMenuButton - New form change button for building Main Menu style applications
Fixed CalculationsAndConversions.StringToWords
Omron Drivers - Fixed a problem causing multiple Send Que threads
Omron Drivers - Some Writes were occuring twice
FINSEthernet Driver - added to fire ComError event
AlphaKeyboard - Improved with more options (contributed by Godra)
ScreenCleanButton - New Controls to blank screen for period of time
EthernetIPforCLXCom - fixed a problem when a lot of strings were used

48
I put together a quick performance test to see how the response time of the AdvancedHMI driver compared to RSLinx, In this test I created as simple PLC program with a free running timer. Using AdvancedHMI I created a subscription to this timer tag with a PollRateOverride of 0 which would make it go as fast as it possibly could. I then allowed it to return 100 values. By subtracting the current value read with the last value read, it would give a reasonable time lapse. Over the 100 reads, I averaged the values. I then repeated the same using RSLinx. Here are the results:

Average Read Time for EthernetIPForCLXCom = 6.1ms
Average Read Time for RSLinx = 7.8ms

That equates to a 22% increase in performance when using AdvancedHMi verus RSLinx.


49
Tips & Tricks / Launching an application on a second monitor
« on: November 12, 2016, 02:38:36 PM »
If you have a multi-monitor setup and want an AdvancedHMI application to always start on the second monitor:

- In design view of the MainForm, double click in a blank area. This will take you back to the FormLoad event handler
- Add this coce:
Code: [Select]
   Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        If Screen.AllScreens.Length > 1 Then
            Me.Location = Screen.AllScreens(1).Bounds.Location
        End If
    End Sub

50
Open Discussion / New Version 3.99r Now Available
« on: September 21, 2016, 09:27:31 PM »
V3.99r
Modbus - Fixed Function Code 22 (correctly this time)
Corrected spelling of KeypadAlphaNumeric property
AlphaKeypad - If cursor was at far left and BackSpace button clicked, would throw exception
EthernetIP drivers - added RoutePath property for bridging across a CLX (e.g.  1,1,2,192.168.1.201  )
EthernetIPforCLXCom - fixed problem with BOOL array subscriptions
KeyboardInput - New control to allow input from keyboard or Wedge scanners
PCCC Drivers - fixed problem with timers and counters that caused flicker in BasicLabels
BasicLabel - PLCAddressVisible was affecting PLCAddressHighlight
SerialDF1 - Added EnableLogging property
EthernetIP drivers - added BeginGetAttributeSingle CIP service
Pipe - Added cross fitting

51
Open Discussion / New Version 3.99p Now Available
« on: August 29, 2016, 08:34:40 PM »
V3.99p
Modbus - Was not updating the last element in a list of subscribed items
TwinCAT - Driver Improvement when using multiple drivers
Tank - Added a line to exit OnCreateControl if Parent Container did not exist
EthernetIPforCLXCom - fixed problem with writing to BOOL arrays
Keypad - Min/Max check always failed if these properties were changed
BasicLabel - Added ActivateKeypad for external triggering
Tank - Fixed problem when MinValue is not 0
EthernetIPforCLXCom - Added TimeOut property
Modbus - Fixed Function Code 22 Masked Bit Write
BasicLabel - Corrected spelling of KeypadAlphaNumeric

52
Additional Components / Alphanumeric Keypad
« on: July 11, 2016, 11:21:54 AM »
- Download the attached file
- In Visual Studio Solution Explorer, under the AdvancedHMIControls project, right click the PurchasedControls folder
- Select Add->Existing
- Browse to the downloaded file


Example of use:

        Dim kpd As New AdvancedHMIControls.AlphaKeyBoard2
        kpd.PassWordCharacters = True
        kpd.ShowDialog()

53
Open Discussion / Interest in Live How-To and Discussions
« on: July 08, 2016, 09:17:55 PM »
Is there any interest in a live event hosted on YouTube in which I would show some tips and tricks, then take questions? If so, what time would be good to hold such an event?

54
Open Discussion / New Version 3.99m Now Available
« on: July 04, 2016, 09:56:39 PM »
BasicLabel - Fixed problem with HighlightBackColor in design mode. Added HighLight property
BasicButton - Fixed problem with HighlightColor and OriginalColor field
EthernetIPforMicro800 - set DisableMultiServiceRequest to True by default
All Controls - changed SubscribeToComDriver so changing ComComponent during run time will work
TwinCATCom - Would not start communications
MessageDisplayByValue, MessageListByValue - ValueChanged Event, new value out in Value property prior to firing event
Meter - Fixed number alignment
EthernetIPforSLCMicro - Added BeginGetDiagnosticStatus to allow retrieving processor information

55
Tips & Tricks / Preparing a PC/Panel PC/Tablet for Industrial Use
« on: June 28, 2016, 05:32:08 PM »
In this thread I will go through a series of steps describing how to set up a device to prepare it for use as an industrial HMI. These will do things such as improve security and tolerate abrupt power outages.

56
You can use these images with the AnimatingPictureBox to create a compass

57
Open Discussion / New Version 3.99k Now Available
« on: June 14, 2016, 08:20:05 PM »
A new version has been posted with the following changes:

V3.99k
SelectorSwitch3Pos - fixed problem with position and ValueLeft/ValueRight properties
Renamed all instances Comm Component to ComComponent
Implemented a "truer" form a INI files with sections and parameters on all drivers
ModbusTCPCom - fixed an IP address problem

V3.99j
MessageDisplayByValue - fixed SpeakMessage

V3.99h
ComBridge - New componet
Added IniFileName and IniFileSection properties to drivers to allow multiple settings in single file
MessageDisplayByValue - Forecolor can now be specified for each message

58
Tips & Tricks / Improved INI file processor in version 3.99k
« on: June 14, 2016, 07:48:54 PM »
The INI file parser has been updated to use true INI files with sections and settings. For example, the INI file will now look like this:
Code: [Select]
[Driver1]
IPAddress=192.168.0.10
PollRateOverride=100

[Driver2]
IPAddress=192.168.0.11

Along with this improvement each driver has 2 new properties, INIFileName and INIFileSection. This allows you to put the settings for multiple drivers in the same file. The new processor also works differently in which it will allow any property to be set that has an atomic data type (e.g. integer, string, float).

This new architecture also lets you easily modify the visual controls and add INI file capability to them by copying 2 code sections from one of the drivers and putting it in the control you wish to support INI files.

59
Open Discussion / HMI Software Comparison
« on: June 12, 2016, 08:46:45 PM »
A topic came up on another forum about comparing different HMI software packages. An idea evolved that I thought was a really good idea. The concept is to layout a set of tasks and create a video showing how to implement these tasks with a particular software. If a video was made for a wide range of available packages, it could give a good side by side comparison. I believe this could be a very valuable resource to anyone looking to evaluate the different packages. I am going to pursue this and see if a library of videos can be compiled.

To start this off I am going to refer to each set of tasks as a challenge. Stemming from the conversation on the other forum, these will be the tasks for challenge #1:

#1 Add a text label value that will change color based on a threshold value (e.g turns red when greater than 800)
#2 Add 2 text labels that will become visible based on low and high thresholds to indicate upper and lower alarms
#3 Trend chart of 1 value
#4 Send a text message on a value going over a threshold
#5 Log a data point to a database every second.

I will be producing the challenge #1 video for AdvancedHMI and post the link to it here when complete.

If anyone is familiar with other packages (e.g. Wonderware, FactoryTalk, Ignition, etc.) or knows someone that is and willing to create video, I welcome links to any videos taking on this challenge.

60
Tips & Tricks / Adding a New PLCAddressXXXX Property to a Control
« on: June 08, 2016, 08:43:16 PM »
If you ever run into the situation in which you want to control another property of a control through a PLC register/tag, this walk through will show you how to add a new PLCAddressXXXX property. You may be quite surprised at how easy it is to do.

In this Walk Through, I will show how to control the Maximum property of the Meter2 by a value in the PLC.

1) In Solution Explorer, expand down the AdvancedHMIControls Project
2) Expand down the Controls folder
3) Look for Meter2.vb
4) Right click Meter2.vb and select View Code
5) Look for a code region named "PLC Related Properties" It may be collapsed and you will need to expand it down. If it is not collapsed, you will look for #Region "PLC Related Properties"
6) Go to the bottom of that code region. It will be marked with an #End Region
7) Just above the #End Region, insert this line of code:
Code: [Select]
Public Property PLCAddressMaximum As String
8 ) Build the solution
9) Open the MainForm and add a Meter2 to your form
10) In the Properties Window, you should now see a new property PLCAddressMaximum

VERY IMPORTANT NOTE:
The name of the property added to the code must match exactly including case. If everything matches, then putting a valid PLC address in the property will let the value from the PLC control the Maximum property.

This method can be used on any AdvancedHMI control, but can only be used on properties of a numeric, boolean, or string type. It cannot be used on complex types such as location or size.

Pages: 1 2 3 [4] 5 6 ... 8