1
Open Discussion / Re: What would you like to see in the next major release?
« on: October 11, 2015, 09:15:08 AM »
Hi,
Firstly, it has been over a year since I played with Advanced HMI so if any of my suggestions are implemented already, my apologies.
Would it be possible (or wise) to have a form type for hosting the comm objects?
As I remember it, for each HMI page in my project, I had to have a COMM object on each form in order to access the same PLC. That meant if the IP or settings were changed, I had to go through each page and update each instance.
Here are a couple of ideas on how this could go...
* A separate service app that provides COMMs - separate to the UI (like a traditional SCADA package)?
* Or perhaps a special 'manager' form that runs in background (potentially under the notification panel) that hosts the COMM objects once only.
At design time, HMI controls on the HMI pages could somehow pick up the list of COMM object(s) from the 'manager' form
At runtime, the 'manager' form when displayed could show useful info like comm status / comm logs (e.g. the COMM objects could be a visible objects with settings/status information and default interactions like 'Data Scope (i.e. ASCI View)', 'Error Log', 'Debug log' etc)
One of many possible future benefits of this arrangement might be to implement a global alarm control or anything that needs to be continuously polled regardless of the page currently visible?
Another request - I would love to be able to perform animation on all the major properties of the HMI controls. Not just from a PLC value, but from an expression / evaluation.
Examples (pseudo code examples to get point across)
* For the controls Visible Property, I would like to be able to enter if(PLC1:DM:0 < 10, True, False)
* For the text colour I could put Colour.FromRGB(PLC1:DM:1, PLC1:DM:2, PLC1:DM:3)
* For the Fill value of a tank I could put (PLC1:DM:5 + PLC1:DM:6)
* Each of these could potentially be built from an expression builder (i.e. editing one of these properties could display a builder form where the projects COMM objects would be listed, common functions, operators etc for the user to choose from)
How you would achieve this - there are a few ways to skin it.
Perhaps the properties of a HMI control are derived from an 'Evaluator' class that knows how to parse the PLC addresses and expressions to a result suitable for the base property type?
Or perhaps an 'Animator' control where you bind an expression to a controls property? (not quite as neat but perhaps easier to implement & would work for standard .NET controls too)
Lastly, I do realise we have the option to code this in a VB event but visual configuration is often easier for folk than coding.
Any how, keep up the good work.
Regards, Steve.
PS, are you looking for co developers? I have many years experience in both .NET and PLCs (mostly OMRON, Mitsi and some older AB - I've even written drivers for my own projects for each of these in various languages). I am toying with the idea of getting stuck into something & this looks like a fun project.
Firstly, it has been over a year since I played with Advanced HMI so if any of my suggestions are implemented already, my apologies.
Would it be possible (or wise) to have a form type for hosting the comm objects?
As I remember it, for each HMI page in my project, I had to have a COMM object on each form in order to access the same PLC. That meant if the IP or settings were changed, I had to go through each page and update each instance.
Here are a couple of ideas on how this could go...
* A separate service app that provides COMMs - separate to the UI (like a traditional SCADA package)?
* Or perhaps a special 'manager' form that runs in background (potentially under the notification panel) that hosts the COMM objects once only.
At design time, HMI controls on the HMI pages could somehow pick up the list of COMM object(s) from the 'manager' form
At runtime, the 'manager' form when displayed could show useful info like comm status / comm logs (e.g. the COMM objects could be a visible objects with settings/status information and default interactions like 'Data Scope (i.e. ASCI View)', 'Error Log', 'Debug log' etc)
One of many possible future benefits of this arrangement might be to implement a global alarm control or anything that needs to be continuously polled regardless of the page currently visible?
Another request - I would love to be able to perform animation on all the major properties of the HMI controls. Not just from a PLC value, but from an expression / evaluation.
Examples (pseudo code examples to get point across)
* For the controls Visible Property, I would like to be able to enter if(PLC1:DM:0 < 10, True, False)
* For the text colour I could put Colour.FromRGB(PLC1:DM:1, PLC1:DM:2, PLC1:DM:3)
* For the Fill value of a tank I could put (PLC1:DM:5 + PLC1:DM:6)
* Each of these could potentially be built from an expression builder (i.e. editing one of these properties could display a builder form where the projects COMM objects would be listed, common functions, operators etc for the user to choose from)
How you would achieve this - there are a few ways to skin it.
Perhaps the properties of a HMI control are derived from an 'Evaluator' class that knows how to parse the PLC addresses and expressions to a result suitable for the base property type?
Or perhaps an 'Animator' control where you bind an expression to a controls property? (not quite as neat but perhaps easier to implement & would work for standard .NET controls too)
Lastly, I do realise we have the option to code this in a VB event but visual configuration is often easier for folk than coding.
Any how, keep up the good work.
Regards, Steve.
PS, are you looking for co developers? I have many years experience in both .NET and PLCs (mostly OMRON, Mitsi and some older AB - I've even written drivers for my own projects for each of these in various languages). I am toying with the idea of getting stuck into something & this looks like a fun project.