Jump to content
OMRON Forums

Best way to command and retrieve data from PowerPmac


piefum

Recommended Posts

Hi all

I have a newbie question on how to permit the control (and the data gathering) to the final user of my device (Hexapod) that is controlled by a PowerPMAC.

 

 

In the old TurboPMAC, I make available to the final user a set of predefined command (e.g. 1 [move], 2 [halt], 3[stop], etc.).

 

What the user (not a user but the process in the main control system) must do to run the proper command is to write in the DPRam the integer representing the selected command as well as the proper parameters, if any.

Operatively, the user must complete the tagEthernetCmd (as explained in the Turbo PMAC User Manual, section "Turbo PMAC Ethernet Protocol") with the RequestType = 0x40 and Request = VR_PMAC_SETMEM and build a byte stream containing one integer (the command) and 6 float (the parameters of the command, if any). A PLC is constantly monitoring the area where the user can write and, when it sees any commands, start the proper PLC or motion program.

 

To retrieve the data, I had a PLC that is copying the variables (that I want to make available to the user) on a particular area of the DPRam; then, the user must use the tagEthernetCmd to retrieve a fixed bytestream of data and then properly split the byte in order to rebuild the variables read (float or int or bool).

This procedure was necessary for security/safety reasons, because we don't want to "teach" to the user the proper syntax to run our system (e.g. we don't want that the user is in charge to "enable plc xx" or "bxxr"), or to make the user to query for each single variable in a single packet. This "single big-packet" retrieving is also useful because with a single socket query we get all the status and variables needed, resulting in a high frequency gathering.

 

 

That said, it is possible to have a similar system on the PowerPMAC? I have never used one, I am preparing for my first buy in a few weeks.

 

It seems (from the manual) that the communication is way much simpler from the ethernet point of view. I suppose I can do almost the same of what I do in the TurboPMAC by connecting on telnet/ssh and then write a command (e.g. "MyCommand 1 1.2 -0.4") that is interpreted from a underlying script that launch the proper PLCs and Motion Program. To retrieve the complete bytestream containing all the variables that I need, I could prepare a script that builds the bytestream in a string, that is requested by the user in ssh (e.g. "GetStatus" and the pmac replies with a superlong string that is then split in the proper variables by the user).

So, the question for you is: am I thinking something stupid with the PowerPMAC? Is there a more efficient way to perform these operations?

 

 

 

Thanks a lot

gigi

Link to comment
Share on other sites

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Hi,

 

Can you distill what you want into one sentence?

 

It sounds like you just want to permit the end user only a set of a few functions. You could write a C# HMI with a button for each function and some fields to fill in. Then, when they fill in the fields and click the button, you just transmit a string to Power PMAC containing the formatted command. The user would see nothing of the internal code if you handed them a compiled HMI.

 

In addition, there is no such thing as DPRAM in Power PMAC. Typically, PPMAC programmers use the "User Buffer"; that is, structures such as Sys.Udata, Sys.DData, etc. The user can define the length of this buffer and stuff it full of data of the format they want as they please.

Link to comment
Share on other sites

Can you distill what you want into one sentence?

 

I need a method to permit the user (better say "remote host") to control my machine with a limited set of commands; these commands are basically a series of PMAC functions (such as "p1001 = 10; p1002 = 40; enable plc 30; disable plc 18; b1r; ") that I want to keep invisible to the user/RemoteHost.

 

It sounds like you just want to permit the end user only a set of a few functions. You could write a C# HMI with a button for each function and some fields to fill in. Then, when they fill in the fields and click the button, you just transmit a string to Power PMAC containing the formatted command. The user would see nothing of the internal code if you handed them a compiled HMI.

 

I already do this in what we call "engineering panel"; however, these functions needs to be commanded also by a remote host (usually a *nix machine where I have no control) that is in charge to control all the systems, not only my device.

 

In addition, there is no such thing as DPRAM in Power PMAC. Typically, PPMAC programmers use the "User Buffer"; that is, structures such as Sys.Udata, Sys.DData, etc. The user can define the length of this buffer and stuff it full of data of the format they want as they please.

 

thanks, this seems interesting. I can put here all the infos that I want to make available to the user.

 

thanks

gigi

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...