A Free HMI with Eye Catching Graphics is Now Available

Thanks, it's working now. My 2nd form was named "Form1" but I added a new form, "Form2" and changed the code to reference to this and it opens it.
 
I have a bar level placed on top of a basic indicator. In design view I can right click and send to front/back, but when I test the code it only displays the basic indicator.

Have tried the following:

Code:
Private Sub BasicIndicator1_Click(sender As Object, e As EventArgs)
        BasicIndicator1.SendToBack()

    End Sub

    Private Sub BarLevel1_Click(sender As Object, e As EventArgs) Handles BarLevel1.Click
        BarLevel1.BringToFront()


but it still only displays the indicator. What am I doing wrong?

Also, is there the facilities within designer to draw your own shapes?
 
I'd probably try using each objects visible property:
Code:
BasicIndicator1.Visible = True
BarLevel1.Visible = False

As far as drawing shapes, I think an add in called PowerPacks will let you do this, but seems pretty basic. It adds lines, ovals and rectangles.
 
Hello, I'm brand new to PLC's and to this site, but it seems it will be a great help.
Currently, I am looking to HMI options to display basic gauges, temperatures, etc.
This software looks great, and it is free!
I am using a Automation Direct Productivity 3000 and am not sure if it is compatible. Any help would be greatly appreciated!
Thanks again!
 
advancedHMI ModbusTCPcom writearray

How to use ModbusTCPcom driver for writing array ?

It seems this function is hard coded to write single register only.

Public Function WriteData(ByVal startAddress As String, ByVal dataToWrite As String) As String Implements IComComponent.WriteData
Dim data() As String = {dataToWrite}
Return WriteData(startAddress, data, 1)
End Function

Anyone used ModbusTCPcom to write register array ?
Thanks.
 
There is another overload just below that one: "
Public
Function WriteData(ByVal startAddress As String, ByVal dataToWrite() As String, ByVal numberOfElements As UInt16) As Integer"
 
Gents,

I think I miss something..
I want to change the color of the digits from the panelmeter...Can anyone point me in a direction to do this?
It must be somewhere in the code of the panelmeter...I think....

Thanks in advance!

Jack
 
Hi AustralIan

Could you pls elaborate, I am not a power user.
How could my call use overloaded function instead of normal writedata ()?

There is another overload just below that one: "
Public
Function WriteData(ByVal startAddress AsString, ByVal dataToWrite() AsString, ByVal numberOfElements AsUInt16) AsInteger"

Thanks
 
Hi AustralIan

Could you pls elaborate, I am not a power user.
How could my call use overloaded function instead of normal writedata ()?

There is another overload just below that one: "
PublicFunction WriteData(ByVal startAddress AsString, ByVal dataToWrite() AsString, ByVal numberOfElements AsUInt16) AsInteger"

Thanks
Method overloading is where there are multiple definitions of a subroutine using the same name. Visual Studio determines which one to use based on the parameters you pass. For example:

MobusTCPComm1.WriteData("40001",0)

and

MobusTCPComm1.WriteData("40001",0, 5)


These look like they will call the same subroutine, but they do not because the parameters being passed are different.
 
Gents,

I think I miss something..
I want to change the color of the digits from the panelmeter...Can anyone point me in a direction to do this?
It must be somewhere in the code of the panelmeter...I think....
The DigitalPanelMeter only comes in red digits. It's in the embedded graphics and cannot be changed. However there is a 7 segment meter that is part of the Meter Expansion pack that changes between red and green based on limits of the value.
 
The DigitalPanelMeter only comes in red digits. It's in the embedded graphics and cannot be changed. However there is a 7 segment meter that is part of the Meter Expansion pack that changes between red and green based on limits of the value.

Oke, I'll check. Thanks!

Jack
 
I still can't get df1com1 to read or write and have Something I found a fix for

I have tried

DF1Comm1.AsyncMode=False
Label1.Text=DF1Comm1.ReadAny("N7:0")

Inside a timer and ti will show the value and then go to 0 back and forth every second and I loose any other display or value anywhere on the same form.

Is there some other way other than a timer where this code should be???

One other question I have is if you are reading a F8:0 and all you want to see is 19.70 but the value is coming from the plc as 19.7068475 can you limit the amount of characters some how??

And for the short cut or fix I have is to be able to change the
MessageDisplayByValue to have different back and fore color's or text size I just don't know how to paste it in to this reply as coded text
anyone that can let me in on how to do that it would be great!!!

Thanks,
Matt
 
DF1Comm1.AsyncMode=False
Label1.Text=DF1Comm1.ReadAny("N7:0")


Is there some other way other than a timer where this code should be???
Asynchronous reading is better, and subscriptions are better yet. There is a trick to using subscriptions and avoiding all of the complexities of the code writing.

1) Add a BasicLabel to your form. (first one will be named BasicLabel1)
2) Set the PLCAddressText to N7:0
3) Change the ForeColor to match the background of your form, making the BasicLabel invisible
4) In your timer routine, access the value using BasicLabel1.Text

This is essentially using a hidden BasicLabel to let it create and handle the subscription.

One other question I have is if you are reading a F8:0 and all you want to see is 19.70 but the value is coming from the plc as 19.7068475 can you limit the amount of characters some how??
In the BasicLabel there is a property NumericFormat. Set this to 0.00 and it will round to 2 digits
And for the short cut or fix I have is to be able to change the
MessageDisplayByValue to have different back and fore color's or text size I just don't know how to paste it in to this reply as coded text
anyone that can let me in on how to do that it would be great!!!
There are two properties named HighlightColor and HighLightKeyCharacter that will do part of what you have done. If your message contains the KeyCharacter, then the background will change to the HighLightColor.

I'm not sure what your code looks like, but you can create a handler for the TextChanged Event to process it further using some code like this:

Code:
[FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]Private[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]Sub[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] MessageDisplayByValue1_TextChanged(sender [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] System.[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Object[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2], e [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] System.[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]EventArgs[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]) [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]Handles[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] MessageDisplayByValue1.TextChanged[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000] '* If the message contains a "?" then set the text color to Yellow[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff] If[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] MessageDisplayByValue1.Text.IndexOf([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515]"?"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]) >= 0 [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]   MessageDisplayByValue1.ForeColor = [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Color[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].Yellow[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff] Else[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]   MessageDisplayByValue1.ForeColor = [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Color[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].White[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff] End[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]End[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]Sub[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT]
These last few concepts are covered in depth in the BasicLabel manual that was recently posted in the Expansion pack section of the web site.
 

Similar Topics

Have a GE IC200CPU002 running a alarm monitoring program All of them are inputs except for the alarm sounder Looking for a free HMI which would...
Replies
2
Views
830
The C-More remote HMI app on APP Store, Google Play and Amazon is now available free. The nominal charge has now been removed...
Replies
5
Views
2,393
Hi I have a phoenix contact installation and I'm looking for hmi software to manage my project better. It has to be as cheap as possible, free if...
Replies
3
Views
2,498
My brother recently bought a KEP HMI for a small project, he asked me to check out the software which is called EasyBuilder 8000...
Replies
1
Views
3,737
Hello, i have a data historian system it is a GE proficy historian. i need an application that can be used to display the data in a HMI format. i...
Replies
25
Views
9,600
Back
Top Bottom