Author Topic: Visible By Integer Value Instead Of BIt  (Read 2212 times)

AabeckControls

  • Full Member
  • ***
  • Posts: 193
    • View Profile
Visible By Integer Value Instead Of BIt
« on: October 22, 2018, 09:59:27 AM »
I am adding onto an existing line that has an overhead hoist moving racks in dip tanks, I will be adding 3 treatment processes to the line with a second hoist. The existing panel SLC5/05 and my new panel will have another SLC5/05. The customer wants the new HMI to be as close to the existing IFix HMI as possible so the operators won't have to relearn new control of the existing line.

I got to the recipe screen, see photo below, where IFix shows a graphic for the motion of each step by reading the step integer (1=GoTo, 2=Lift, 3=Drop, etc.)

My question - can an object in AHMI have for it's VisibleBit something like N7:11=1? I am hoping this could be simple as there will be 540 objects for the 90 steps, along with a destination value if the step=1 for each step. I don't want to have to program 540 bits in the PLC, and for the added processes that will be another 90 steps with a similar screen.

Side Note: I tried to post this but didn't reduce the size of the photo, when I hit Post it took me to a screen that said the attachment was too large, and when I clicked Back it went back to an empty page with everything I entered lost. Then on the second try I tried to make the N7 address bold by pressing CTRL-B and a popup appeared that was irrelevant and when I closed it the browser closed, again losing everything I entered.

Archie

  • Administrator
  • Hero Member
  • *****
  • Posts: 5322
    • View Profile
    • AdvancedHMI
Re: Visible By Integer Value Instead Of BIt
« Reply #1 on: October 22, 2018, 10:20:11 AM »
The AnalogValueDisplay has a VisibleControl property that can do this. Also the AnalogVisibilityController was designed for this, but is kind of awkward for a large number of items.

Is there a particular control you want to do this? If so, I can guide you through modifying the control to have the VisibleControl property.

AabeckControls

  • Full Member
  • ***
  • Posts: 193
    • View Profile
Re: Visible By Integer Value Instead Of BIt
« Reply #2 on: October 22, 2018, 10:35:22 AM »
Archie,

I haven't decided what object to use. Maybe a BasicLabel with a special character of a font that is a checkbox like the photo, or a PictureBox with a graphic.

ALT character 251 = √ and 254 = ■  Either one would be OK for BasicLabel

Plus for the Tank # if step=1 that would have to be a BasicLabel to show the integer value, wouldn't it?

Or would you suggest something else?

I have started this using 399verX



Archie

  • Administrator
  • Hero Member
  • *****
  • Posts: 5322
    • View Profile
    • AdvancedHMI
Re: Visible By Integer Value Instead Of BIt
« Reply #3 on: October 22, 2018, 11:30:45 AM »
Is each row/step represented by a single register? If so, one thought is a MultistateSelector. Based on the Value property, it will change the color of a particular block. For example, add 6 states and make it point to N7:0, then the corresponding column will turn a color based on the value of N7:0. This would reduce your number of items on the form by a factor of 6

AabeckControls

  • Full Member
  • ***
  • Posts: 193
    • View Profile
Re: Visible By Integer Value Instead Of BIt
« Reply #4 on: October 22, 2018, 12:30:00 PM »
Yes, each row is a single integer for the motion, and a second integer if the motion = 1 for the destination tank.

The MultiStateSelector is perfect, and it does cut down the use of the PLC driver al lot - I was concerned 600 objects on a page would be a comm's problem. It won't be a problem adding a bit for visibility if the value is 1 to show the destination tank.

Also, AnalogValueDisplay will work great as if the step does not have a destination it reverts to a value of 0, so I set the range at 1 to 99 and visibility if only in the range. This line has 21 tanks and a load station and for some reason the load station is Sta# 99 (not 1) and my 10 added tanks will be 98 to 89, counting down from the load station away from the existing line.

AabeckControls

  • Full Member
  • ***
  • Posts: 193
    • View Profile
Re: Visible By Integer Value Instead Of BIt
« Reply #5 on: November 07, 2018, 03:48:23 PM »
I finally got this project to the Debug stage (another thread that ended up in updating the firmware of the 5/05 for AHMI to be able to communicate with it)

I have got almost all the screens working fully, but when I try to open the recipe screens with the above objects I get an popup about memory.

On my development laptop (6 GIG RAM) I get an Out-Of-Memory error when I open the screens in VS2017, but they then open. When I rebuild it shows 3 successful, 0 errors and no errors are listed.

When I try to open the screens on the runtime PC I get a popup window about memory, then AHMI closes. The runtime PC has 4 GIG memory, but taskmanager only shows about 40 - 43% used.

If I increase the memory in the (customer's) runtime PC should this run?

Will the memory of my laptop stop it from building properly?

I have thought about moving this to my home desktop with 12 GIG RAM, but have had problems losing everything reopening it on the original development PC. It has been suggested to us VS Teams, but when I got into it I could not find how to import an existing project - only create new, empty projects. 


Archie

  • Administrator
  • Hero Member
  • *****
  • Posts: 5322
    • View Profile
    • AdvancedHMI
Re: Visible By Integer Value Instead Of BIt
« Reply #6 on: November 07, 2018, 08:22:23 PM »
This would be very unlikely to be a RAM problem. It is most likely a program issue. Are you using the MultiStateSelectors? It could be that component has a memory leak.

AabeckControls

  • Full Member
  • ***
  • Posts: 193
    • View Profile
Re: Visible By Integer Value Instead Of BIt
« Reply #7 on: November 08, 2018, 06:27:15 AM »
Archie,

Yes, I am using 90 of the MultiStateSelectors, 1 for each recipe step. When I get the memory error opening the screen it shows 1 error - Out Of Memory, but 90 call stacks.

To see which object it was I had 90 of (Basicabel for step #, MultiStateSelcetor for command or AnalogValueDisplay for destination) I deleted different numbers of each, rebuilt, then reopened and the call stack quantity matched the remaining MultiStateSelectors.

I started to delete the MultiStateSelectors and replace them with a MessageDisplayByValue, and a .TXT file of the commands on a second recipe screen. This morning I am going to change the recipe screen used and see if that works - it just won't be graphical.