Indicating maintenance status in HMIs.

RMA

Member
Join Date
Sep 2004
Location
North of Hamburg, Germany
Posts
2,052
I've got two questions here, but since they're pretty closely related, I reckon they might as well be in the same Thread. Although I'm using ProTool Pro, I reckon most HMI S/W nowadays offers pretty much the same funcionality so general suggestions from users of other HMI S/W are most welcome.

The motor-driven switches that we are using in this project are usually used in power stations and the like and as a rule may only be actually switched once or twice a year. We may be switching some of the switches twenty, thirty or more times per day, so they are obviously going to need some maintenance. Exactly what maintenance they are going to need is going be a learning on the job experience, because even the manufacturer can't gives any ideas in this application. From tests that we've done we reckon that greasing of the contacts is going to be necessary every 500 or so switching cycles. The motors will be pretty well clapped out and needing replacement somewhere round about 5000 cycles (or less). Somewhere along the line we reckon the contacts will also need to be replaced, but unfortunatly when they did the lifetests on the switch, nobody thought to check this out!

The general opinion among all concerned is that most people would prefer a counter system that would indicate when particular maintenance is necessary, presumably by a colour change, but that the counter concerned should only be reset to zero after the switch has been completely overhauled and is effectively "as new". Colour changing according to count status is basically no problem, e.g. 0 - 400 = green, 400 - 500 = orange and over 500 = red. What's a bit more of a problem - and I don't think it's directly do-able in ProTool - is how to go back to green after the service is performed at say, 460 cycles?

The other problem I've got is that I want a message to appear on the login screen if any of the switches is in the phase where maintenance is due in the near future, which forces them to jump to the maintenace screen to check out the state of things before returning to the logon screen with the logon button now visible. However, I only want this to happen once per logon. I initially thought I could do this by monitoring the password level, but unfortunately, it doesn't get reset to zero when the password times out.

If anybody's got any suggestions of how to handle these situations, I'd be glad to hear them. If you need any more info, just ask, I didn't want to overload the first post more than absolutely necessary.
 
RMA said:
I initially thought I could do this by monitoring the password level, but unfortunately, it doesn't get reset to zero when the password times out.

On my system I get the current userlevel in a tag, and it reports correctly also when the operator is logged off automatically.
I have added several functions under System .. Functions .. Password Change: Write_password_level_to_tag, Write_user_name_to_tag and Report_password_change.
Do you have all of these too ?
 
My opinion would be simply to put a counter in the PLC for each one and do the color indication by setting bits in the PLC based on the counter's status (ie. Counter1 < 100, set Green bit, counter1 >= 100 and < 200, yellow bit, etc.). As far as resetting the counters after maintenance is preformed, I suppose the easiest way would be via a direct PB on the HMI that resets each counter. Obviously, put this on some type of maintenance screen with access level protection.

For the indication message...you can alarm the red status which should give an immediate indication and remain on the alarm screen until its satisfied.
Is this what you are looking for?
 
Personally I would rather see an alternative to the switching part but...

I would have 2 counters, one to goto 500 and another for 5000. Once the first counter gets to 400 then display a warning screen that operators should notify maintenance but they can clear to run BUT if it gets to 500 then an ALARM (maintenance required) screen appears that maintenance has to login to reset...of course after a few months the operators will know that password too. On the MAINTENANCE screen there should be a reset for the counter...ie Maintenance done (contacts greased) whatever. Another reset for motor replaced to reset the 5000 count.

There is no "perfect" method because someone will have to tell the plc in some fashion that maintenance has been performed...I would not reset the counter(s) just because someone logged onto the maintenance screen. In all fairness if there is just one "good" operator that knows maintenance was done and the counters not reset he will mention/log it.
 
RMA said:
I initially thought I could do this by monitoring the password level, but unfortunately, it doesn't get reset to zero when the password times out.
Can you get the status of the logon screen or the password timer? I'm thinking something like this may be a 'back door' way to get what you want.
 
Roy, I've done things like what you propose on several large projects in the past. One system had a large web of conveyors and actuators, and some sections would run tens times more often than others. So, I kept track of run times for each section to better predict which areas would require more maintenance.

I kept track of time by using dints that I indexed each second (that is plenty of resolution) under certain conditions. I had cumulative timers for both runtime and fault time so we could tell if one particular system was faulting out more than another. I also added counters (again, using ints and dints) to count certain events that could be useful for performing predictive maintenance.

Also, I didn't use just one set of accumulators. I had a daily counter, a weekly counter, and a lifetime counter. The lifetime counter could not be reset at all. The weekly counter was automatically stored in a SQL database every Sunday AM and then zeroed. The daily counters were more or less used by the techs any way they wanted (you would have to see the operation to see why that might be useful).

In a case like yours, I would probably use lifetime counters as something like an odometer, and send up an acknowledgeable alarm when it reached specific intervals. How do you verify that they really did the maintenance? Well, you probably can't, even if you password protect the acknowledge button. But collecting the data and reporting it in some useful manner is the first step, and I find that if there are lifetime values that are staring at them and can't be reset, then it's harder to ignore them.
 
Boy, that didn't take long, thanks a lot guys!

On my system I get the current userlevel in a tag, and it reports correctly also when the operator is logged off automatically.
I have added several functions under System .. Functions .. Password Change: Write_password_level_to_tag, Write_user_name_to_tag and Report_password_change.
Do you have all of these too ?

Yes those are all available as functions, but in the same way that the screen jump using the Screen Number DB only works on Windows CE panels and not on PCs, it looks like the update of the userlevel tag doesn't work on a PC. Pity, that would have made it real easy!

@Dr. Watson and @Ron,

As I said, the colour change is relatively easy, the problem was resetting the warning colour if the service was performed. I was already pretty convinced I needed to use two pushbuttons for the two different types of resets.

I would have 2 counters, one to goto 500 and another for 5000. Once the first counter gets to 400 then display a warning screen that operators should notify maintenance but they can clear to run BUT if it gets to 500 then an ALARM (maintenance required) screen appears that maintenance has to login to reset.

That was functionally pretty much what I intended, I like the idea of using two counters, that might be the easiest solution.

@Doug-P

Can you get the status of the logon screen or the password timer? I'm thinking something like this may be a 'back door' way to get what you want.
The status of the logon screen dosesn't help me, but if there's a way to find out the state of the logon timer, that would be useful - somehow I don't think that's going to be easy though!

One of the other complicating features is that there are 85 of these switches,which is why I decided to go for a separate maintenance screen.

@Ron
Personally I would rather see an alternative to the switching part but...
Not quite sure what you mean by that, but if you mean that some other type of switch may have been preferable, I wasn't involved in specing the switches, but I can imagine there isn't exactly a large list of switches capable of carrying 50 kA and switching 24 kV.
 
Not quite sure what you mean by that, but if you mean that some other type of switch may have been preferable, I wasn't involved in specing the switches, but I can imagine there isn't exactly a large list of switches capable of carrying 50 kA and switching 24 kV.
I kind of took it for granted that you were talking about a high voltage/current situation, thats why I did not finish the sentence.

S7 offered better details then I did. As was metnioned I would think the color would be set on the count, so if you reset the count the color changes...ie use a limit range, I think that is possible.
 
You can use the built-in functionality in Protool to get a pretty good control of the display and resetting of the maintenance counters, including logging of everything.

Set up one or several alarm messages that are triggered when maintenance is due for some item(s).
The alarms must be assigned an acknowledgement group, one that is not used by the regular acknowledgement button.

You then add a button on your maintenance screen with two functions: Resetting the alarms with the ack group that is particular to maintenance + resetting the counter(s). The button must be set to a suitably high password level. Link the ack alarm function on the button to the alarm message view, in that way the operator can select exactly the alarm message that he wants to acknowledge (not just the latest one).

You must have logging to file of both system messages and of alarm messages.
Create a message view for logged system messages and logged alarm messages.
You can then track when the maintenance counters are reset and by who.
 
it looks like the update of the userlevel tag doesn't work on a PC. Pity, that would have made it real easy!
It works on my PC with Protool RT. I dont know why it works on my PC and not on yours.
When the password times out, the two tags UserLevel and OperatorName are updated. UserLevel=0 and OperatorName=(blank).
 
S7 offered better details then I did. As was metnioned I would think the color would be set on the count, so if you reset the count the color changes...ie use a limit range, I think that is possible.




Yes, using the limit range is no problem when using separate counters, because I can reset the counter to zero in this case. The only problem with implementing it is getting a half way decent screen layout - with 85 switches things can easily get a bit cluttered with two counters and two buttons for each one!
 
@S7Guy, we were both posting at the same time yesterday, so I only discovered your post this morning. In effect your suggestion is much like Ron's, although as you say, a visible "Lifetime" counter could help to make sure maintenance really does get performed. We may be in luck here, because the Research Institute are going to sub-contract out the maintenance, so we can give the maintenance company their own password (and hope they keep it to themselves!) and I would guess that one could expect them as sub-contractors to genuinely do the required maintenance.

@Jesper, because of the flexibility of the way the system can be set up (this was part of the original intention), it is not possible to group the switches in any sensible way, so I need to have individual buttons for each switch and function.

I'm actually now fairly happy with what I want to do, the remaining problem is how to present it in a tidy and easily understood form. Until now I've been able to work with the 21 Modules aligned across the screen, I was even able to display the switch counts fairly satisfactorily, but with only about 48 Pixels width for each module, displaying a lifetime count is not on!

HMI_1.JPG


I've just tried it again with the UserLevel and Username and they definitely do not get reset, I wonder if that's a setting that you can modify somewhere in ProTool? I'll have to have a look. One thing I've noticed, because (I assume) I was careless when I created the UserName String in my general DB and let it default to 254 Bytes instead of limiting it to the 8 character maximum, I can't archive it!
 
Last edited:
One thing I've noticed, because (I assume) I was careless when I created the UserName String in my general DB and let it default to 254 Bytes instead of limiting it to the 8 character maximum, I can't archive it!

@Jesper, I've just created a new storage space, just 8 Bytes long, for the UserName (still in my general DB), but ProTool still won't let me archive it. Are you able to archive your UserName - if so how did you mange to get it to do that?
 
I will have to look into it on friday. I am not at my work PC at the moment.
But basically I have set up an archive for system messages, and a message view for the same archive. It logs all system messages including logon and logoff, also logoff because of the timeout.
 
I have the problem that having defined the UserName as an 8-Byte String in a DB, when I click on the "Archive" rider in the Properties box everything is greyed out and it won't let me assign the String to any Archive, regardless of type.
 

Similar Topics

Hello guys hope y’all healthy during this time, Im looking for help in a project im trying to finish. I need to get a bool (ote) when a dint...
Replies
6
Views
1,787
Factorytalk ME Edition. what i'm trying to do is have a single button that opens and closes a valve manually. When the valve is opening I want...
Replies
2
Views
1,797
My drive is indicating F004 fault i have tried are th remedies bt not working wat might be th problem
Replies
19
Views
58,454
We have a servo motor that moves a chute horizontally. The chute drops the parts when the chute door opens. However, sometimes the door closes too...
Replies
3
Views
2,116
I have a 4-20mA open circuit error on the analog module. Problem is I still have a 4-20mA open circuit alarm on module 8 channel 4 which indicates...
Replies
22
Views
8,120
Back
Top Bottom