Maple Systems HMI Screen Control

jthornton

Member
Join Date
Jul 2002
Location
Poplar Bluff, MO
Posts
295
We had to replace a Maple Systems HMI with a new one and the programs are not compatible and I can't decode it so I'm starting from scratch. My first problem I can't seem to figure out is how to monitor the current screen number in the PLC (SLC503).

From the Maple FAQ I found this
The PLC can monitor the current window displayed: Local Word LW9050 contains the number of the currently displayed base window. The PLC may also use incremental windows plus an offset. Load the offset window number into LW9055 (i.e. 10) and the PLC Control object can contain the value to add (i.e. 2) to get a result of window #12.

I have the PLC changing the screens as it needs to but sometimes it is on the wrong screen and I need to PLC to see that and change it to the correct screen. How do I read LW9050 in the PLC?

Thanks
JT
 
We did it using a macro that runs on screen open. Right click on the screen in the object list and select "settings". Enter the macro name in the Open Macro field. The macro we used looks like this:


Code:
macro_command main()
short	Screen_Number

GetData(Screen_Number, "Local HMI", LW, 9050, 1)

SetData(Screen_Number, "PLC", "HMI_CurrentScreen", 1)

end macro_command

I don't know of another way to get this information to the plc.

Keith
 
Not sure why you couldn't decode original program. Please post model numbers. You upload the program, add the XOB or EXOB extension to the object file, then decompile in software to create a new project. Link for the FAQ for Weintek, the OEM for most Maples. You should be able to find the same FAQ for Maple, if needed. Upload instructions start at page 4.

Found Maple version. Instructions are tech note 5057 (and 5059) under the Legacy Products here.
 
We did it using a macro that runs on screen open. Right click on the screen in the object list and select "settings". Enter the macro name in the Open Macro field. The macro we used looks like this:


Code:
macro_command main()
short    Screen_Number

GetData(Screen_Number, "Local HMI", LW, 9050, 1)

SetData(Screen_Number, "PLC", "HMI_CurrentScreen", 1)

end macro_command
I don't know of another way to get this information to the plc.

Keith

Keith, thanks so much for the macro, I'll give that a whirl... I assume HMI_CurrentScreen is a tag in the PLC?

Thanks
JT
 
Not sure why you couldn't decode original program. Please post model numbers. You upload the program, add the XOB or EXOB extension to the object file, then decompile in software to create a new project. Link for the FAQ for Weintek, the OEM for most Maples. You should be able to find the same FAQ for Maple, if needed. Upload instructions start at page 4.

Found Maple version. Instructions are tech note 5057 (and 5059) under the Legacy Products here.

I tried for days to decompile the project with no success. I even looked in the file with a hex editor to see if I could find either the password or the checkbox that says "Do not decomplie" with no luck. The only thing I could find was the text messages for the alarms. We called the company that made the machine and their reply was the guy that programmed that is no longer here... I'm thinking don't you keep a file on each machine you build??? Anyway we are past that now... the machine is back up and running with a new screen I just need to figure out a few things.

The original screen program is not compatible with the new screen, we tried to just use a USB to transfer it and the new screen rejected it.

JT
 
Last edited:
You can do whatever you want with Macros. Either method should be fine.

If you want to revisit decompile:
If the screen is older, you need an older version of software to decompile it. With Weintek, the latest software is EB Pro, but I would use EB8000 to decompile an older screen. The EB8000 extension is ".xob". EB Pro is "exob".
You can download and use the Weintek software for Maple. Only difference is model numbers.
At one time I needed to keep an older version of EB8000, V3.45, as well as the latest, V4.63. I think they fixed that in the latest version of EB8000.
Was it so old you needed EB500?
 
Create a New PLC Object and select change window, make it just like the picture I have attached (Plc Control)(Make sure "Clear Data After Window Change) is checked, the trigger address can be of your choice as long as it's not being used elsewhere in the program - I use 500)

Now create a Macro (I named my Change_Window) but you can name it to fit your needs, make it just as my (ChangeWindowMacro) shows.

Now if you notice what I'm doing in the Macro is writing a 1 to location LW-500 and the "PLC-Control object" is always monitoring this address, when it change from a 0 to 1 the macro will change screen (gotoscr =??) and at the same time the "Trigger Bit gets cleared" so it will be ready for another change.

So now anytime you want to change to a window - write a 1 to address LW-500.

PLC_Control.jpg ChangeWindowMacro.jpg
 
You can do whatever you want with Macros. Either method should be fine.

If you want to revisit decompile:
If the screen is older, you need an older version of software to decompile it. With Weintek, the latest software is EB Pro, but I would use EB8000 to decompile an older screen. The EB8000 extension is ".xob". EB Pro is "exob".
You can download and use the Weintek software for Maple. Only difference is model numbers.
At one time I needed to keep an older version of EB8000, V3.45, as well as the latest, V4.63. I think they fixed that in the latest version of EB8000.
Was it so old you needed EB500?

I had EZware 5000 software with the original HMI5056T, we got EZwarePlus with the HMI5070LB. Are you saying the Weintek software can decompile even if the compile was done with the "do not decompile" checkbox selected or even if you don't know the password? The original file is a xob file.

Thanks
JT
 
jthornton - Please forgive me as I forgot this part, it's how to call the Macro.

This statement is a little misleading "So now anytime you want to change to a window - write a 1 to address LW-500."

It is writing 1 to LW-500 that causes the PLC Control object to change windows, but it is the Macro that sets up the gotoscr=?? so that the
PLC Control object will know what window to change to.

I hope this makes more sense now.

Sorry!

FunctionKey.jpg
 
Last edited:
Would I create a PLC object for each stations fault popup? Each station sets a number like N7:22 to something above 0 for a fault. Each number means a different fault for that station, I assume there is some way to have a list or something to display the correct fault info?

JT
 
I had EZware 5000 software with the original HMI5056T, we got EZwarePlus with the HMI5070LB. Are you saying the Weintek software can decompile even if the compile was done with the "do not decompile" checkbox selected or even if you don't know the password? The original file is a xob file.

Thanks
JT
No. If EZware 5000 wouldn't do it, EB8000 won't either.
Only difference between Weintek and Maple is the model number list.
I would think if it's password protected, it would tell you. Not sure what happens if you set the "do not decompile" bit.
 
I'm not sure exactly how you want your system to function, but you could create 1 plc object and then create several different macros that would be for the different screen you want to change to.

So example Macro 1 could be for fault code 4, this macro would have a gotoscr=15, macro 2 could be for fault code 5 this macro would have a gotoscr=20, and so on, just remember each macro will have to write a 1 to LW-500.

I hope this makes sense.
 
I'm not sure exactly how you want your system to function, but you could create 1 plc object and then create several different macros that would be for the different screen you want to change to.

So example Macro 1 could be for fault code 4, this macro would have a gotoscr=15, macro 2 could be for fault code 5 this macro would have a gotoscr=20, and so on, just remember each macro will have to write a 1 to LW-500.

I hope this makes sense.

Yes this makes sense, thanks so much for the help.

JT
 

Similar Topics

hello, I have a Maple Systems HMI5103L currently programed and running in conjunction with a AB 2080-LC50-24QWB. everything works fine data is...
Replies
2
Views
708
Hello friends, I’ve recently started learning about PLCs and HMIs after I acquired a Wago 750-871 with one digital input card and two digital...
Replies
20
Views
5,502
Hi Everyone, Customer has an existing Maple Systems HMI Model HMI5104XH connected to a SCADAPack 350 PLC that I am working on. I was able to...
Replies
2
Views
1,664
I currently have a Maple Systems HMI (HMI5070P) communicating over Serial DF1 to a MicroLogix 1400. The problem I have is that the HMI will not...
Replies
2
Views
2,047
Hey guys, I am fairly new to industrial communications. I recently got into a project in which I have a new Rx3I with a CMM002 module that I am...
Replies
4
Views
1,523
Back
Top Bottom