General Category > Application Showcase

Screen Shot of Program using only BasicLabels

(1/3) > >>

Archie:
I did this more or less for a demo to show what can be done with just a BasicLabel and background image.

billfloyd806:
I'm just starting to use this software. How do I make a multiple screens for example I have a coating system with 15 tanks. I'd like 15 different screens, which the operator would access from a main menu? Also, I've seen some great graphics, how do you add your own custom graphics.

Thanks in advance.

Archie:
To add a screen, right click AdvancedHMI in the Solution Explorer and select Add New Windows Form.

Most of my graphics are drawn in Adobe Illustrator and exported as PNG files. The animation can get a bit involved because it generally requires a bit of code to do.

leesmith1985:
Hi Archie,

Even using simply basic labels with a nice PNG background the HMI looks great.  Any chance you can provide the full source to this rather than just a screenshot?

I have two specific questions as I am a total newbie to Advanced HMI:

1.  How can I perform some processing on the data returned from the PLC before displaying it in a basic label?  I can see the general idea is to allow the user to avoid any programming and simply assign each control to a tag in the PLC.  However, when this is not sufficient, what is your suggested approach.  For example, I have a tag that returns a timestamp in Unix format (number of elapsed seconds since 1/1/1970).  Before displaying the raw integer value in a basic label, I'd like to do some processing and come up with a readable date time string to present on the HMI.

2.  Do you have a full manual of all the existing controls and examples of usage?  The quick start guide is good but it only gets you so far.  Also, an overview of the architecture would be hugely beneficial i.e. how the drivers and controls interact (the subscription model) etc.

For your information, I am a C# developer with a solid grasp of the .NET framework, but I obviously don't know much about your application specifically.  I have all the basics working now whereby I have registered a driver and have a lot of digital panel meters, gauges, momentary buttons and switches working perfectly as they are interacting directly with tag data in a one to one fashion.  I now want to be able to take it that step further and utilise additional presentation logic while still being able to use your very nice controls OR create my own controls to suit my needs.

Thanks in advance, Lee.

Archie:
Lee

The best approach to achieving some pre-processing is to modify the BasicLabel.vb code. In the subscribing section of the code, you will find PollDataReturned**** subroutines. That is where the data that comes back from the driver is pushed into the corresponding properties. You can also pre-process in the Text Set property. I have actually done something very similar on the particular job this screen shot came from. I added a property named "ShowInTimeFormat", then in the Text Property Set routine I check if that property is true. If so, I format the value before it is written to the Text property.

There are other methods of doing this that I recommend to non-programmers that are easier, but not nearly as clean. For example, you can add a BasicLabel, set the forecolor to the same as the form background in order to hide the label. Then capture the TextChanged event to get the value and send it to another Label in the format you want.

Just a note, these techniques will change in version 3.5 which is due to be released this weekend. In version 3.5, there are OnValueChanged events and also a DataSubscriber component that lets you hook into data in the PLC without writing any code and creating an event handler to process the value as it comes back.

As for manuals, the only thing we are currently making available are the ones listed in the expansion pack section of the web site. As time goes on we will make more available. Until then, the detailed software architecture is only explained in our training classes.

Navigation

[0] Message Index

[#] Next page

Go to full version