PLCS.net - Interactive Q & A

PLCS.net - Interactive Q & A (http://www.plctalk.net/qanda/index.php)
-   LIVE PLC Questions And Answers (http://www.plctalk.net/qanda/forumdisplay.php?f=2)
-   -   Maple Systems HMI Screen Control (http://www.plctalk.net/qanda/showthread.php?t=113858)

jthornton January 19th, 2018 05:43 PM

Maple Systems HMI Screen Control
 
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
Quote:

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

kamenges January 19th, 2018 05:50 PM

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

keithkyll January 20th, 2018 12:34 AM

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.

jthornton January 20th, 2018 05:57 AM

Quote:

Originally Posted by kamenges (Post 765689)
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

jthornton January 20th, 2018 06:02 AM

Quote:

Originally Posted by keithkyll (Post 765698)
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

jthornton January 20th, 2018 06:16 AM

Now I'm wondering after finding the EZwarePlus Macro Programming manual if it would just be better on boot up to examine if a bit is on and change from screen 10 to screen 11?

JT

keithkyll January 20th, 2018 08:19 AM

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?

damica1 January 20th, 2018 08:36 AM

2 Attachment(s)
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.

jthornton January 20th, 2018 02:03 PM

Quote:

Originally Posted by keithkyll (Post 765717)
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 January 20th, 2018 02:11 PM

David,

Thanks so much for the information and the screen shots. This is getting easier all the time thanks to the help here.

JT

damica1 January 20th, 2018 02:33 PM

1 Attachment(s)
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!

jthornton January 20th, 2018 06:27 PM

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

keithkyll January 20th, 2018 07:33 PM

Quote:

Originally Posted by jthornton (Post 765737)
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.

damica1 January 20th, 2018 09:37 PM

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.

jthornton January 21st, 2018 08:25 AM

Quote:

Originally Posted by damica1 (Post 765766)
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


All times are GMT -5. The time now is 05:13 PM.

.