Jump to content
OMRON Forums

RickJames

Members
  • Posts

    28
  • Joined

  • Last visited

Everything posted by RickJames

  1. I tried the firmware install and that didn't work either. I finally got the system back to a working state by installing the firmware image. Thanks for the response Sina.
  2. I captured the boot data that comes out of the serial port on the Power Pmac. It looks like some files are missing and the kernel may be corrupted. Would you experts please take a look at it and advise? Thanks, Rick PPMac Capture 011113.TXT
  3. I have a Power Pmac in a UMAC rack. It's had the problem of not booting all the way up to where the axis interface card lights light up. But a quick power cycle will usually get it into a completely running state. I upgraded the firmware to version 1.4.027 resently. The system booted up, I recompiled my project and it downloaded successfully. I tried to do another build and download but when I cycled power to clear the memory, the axis interface card lights come on for 5 seconds then drop out. If I pull the MACRO acc-5e card, then the axis control interface cards light up and stay lit. I talked to a friend who said there may be a problem with the cpu clocking on the Power Pmac. Or that the wait state may need to be increased becaus the CPU is faster than the backplane can handle. Any suggestions on debugging this? And where do I find the wait state (TURBO I37) on the Power Pmac? Is it Sys.BgSleepTime?
  4. Let me start by saying that I inherited this problem from someone else and there is still alot about the MACRO devices I don't understand. Anyway, here is the problem. I have an ACC-5E MACRO card in a rack with a TURBO pmac and 3 ACC-24EA2 axis cards passing data to an ACC-5E MACRO card in another rack with a Power Pmac. Sometimes the positional data from the first axis card is not being updated on the Power Pmac side. The data from the second and third axis card, along with some other I/O data, are still being updated. Issuing a $$$ reset in the PWIN32Pro command window doesn't correct the problem. If I cycle power on the TURBO rack it will come up working sometimes, sometimes not. But once it is working it continues to work until the power is cycled again, or until the MACRO ring is broken and re-established (disconnect fiber optic cable). There is no macro error, so I'm assuming the MACRO is transferring whatever is left in the buffer, it just never changes. How do I verify that the positional data is getting from the axis card (which is always updating correctly) to the MACRO card for transfer? Where are the registers or buffers I need to look at? And also what is a good manual for this problem? I've looked throught the TURBO Pmac manual and looked at some of the variables it calls out, but didin't find what I needed. Thanks for the help and sorry for the long post.
  5. I know this is novice question, but I'm modifying someone elses code on a Power Pmac and I'm seeing conficts in how the = sign is used in a .PMC file. If it's a comparison like: if (Varname == 1) { Then it's the '=='. But what if it's and assignment like: varname = 1; or varname == 1; Which is correct? I see it done both ways in the file. Thanks for the help.
  6. Thank you Richard. I've got the PVT crating a decent looking move profile now. But I still have one problem. If I'm at 25.4 mm/min and I want to ramp to 50.8 mm/min, the x axis speed drops to 0 for an instant then ramps up. I'm trying to blend from the previous linear move command to the PVT move command using the TA and TD commands. Is that the right approach? Thanks again.
  7. I'm trying to create a linear accelleration move over time on the x axis. I used the formula time=DeltaP/((v1+v2)/2) I found in some PowerPmac documentation which calculates a 59000 ms move. I've tried using the PVT command but it accelerates to near the target speed, decelerates, then makes a jump to target speed at the end of the move segment. I want the speed to ramp from 25.4 mm/min to 127mm/min. PVT59000 x76.2:127 y150 v130 w130 X is the only thing indicating a positional change. I also tried to do something similar with the TA command. With it, the X axis had a constant speed of ~5 mm/min. TA59000 x76.2:127 y150 v130 w130 Any suggestions on what else I can try? Thank you for reading.
  8. I issued this command "variablename,384" in the terminal window of the IDE. and this is the response time I got "Response 360 chars in 140 msec. So that is inline with what your getting from your IDE, and what i'm getting in my VB application. Unfortunately thats just not fast enough to meet the requirements of my project. I need to retrieve 2000 pieces of data in less that 100 msec. I'm investigating alternative methods. Thank you for the tests and the info.
  9. I'm reading blocks of about 400 pointers(ptr) variables to memory locations and it's taking 150 milliseconds to get a response from the GetResponse method using the telnet protocol connection. If I double the number of variables requested, then it takes more than twice as long. As I remember, this was faster in the original beta version. If I read the sys data (sys.udata[]), then it takes 1/10th the time. I've been using an older version of the com library (1.0.3925.26557, dated 9-30-2010) that uses telnet protocol and is very slow. I was informed that there is a new version that uses SSH, doesn't have the telnet, and is much faster. I'd rather not waste any more time trying to solve a problem that might be solved with the correct version of the com library. Where can I get the latest version? Thanks, Rick
  10. Scott, Here are the declaration, connection, set variable, and get variable code I'm using. Good luck. Rick ' This object delcaration is from the latest version of the Comlib, and is different than the original beta version. Public Shared objPPMacAxes As PowerPmacComLib.ISyncGpasciiCommunicationInterface ' This specifies the object as sycronous GPascii telnet connection. objPPMacAxes = PowerPmacComLib.Connect.CreateSyncGpascii(PowerPmacComLib.deviceProperties.ConnectionTypes.Telnet, objPPMacAxes) ' If the connection is good, this will return a true value mResult = objPPMacAxes.GPAscii2Connect(.PPMac_Address, 23, .PPMac_Login, .PPMac_Passwd) If Not mResult Then Throw New Exception("Could not connect to PowerPmac.") End If ' Set a variable on the power pmac. objPPMacAxes.GetResponse(VarName & "=" & Value, mResponse) ' if it worked, will return an empty string. If mResponse.Length > 0 Then Throw New Exception("The GetResponse method returned an error.") End If ' Retrieve a variable value, or just execute a command. objPPMacAxes.GetResponse(VarName, mResponse) If InStr(mResponse.ToUpper, "ERROR") > 0 Then Throw New Exception("The GetResponse method returned an error.") End If
  11. [quote='shelinej' pid='1077' dateline='1295012428'] I am trying to do something like this and I can't get it to work either. Did you ever find a solution? [/quote] Right now there is not solution. The response I got form Delta Tau is that the server connection is still in beta and is not available in the Power Pmac firmware. The telnet connection however, does work and I am using it successfully. Get the latest versions of the comm library, IDE, and firmware as there are some important bug fixes in them. Notably the ability to do tru syncronous connections. The latest IDE has the addition of visual basic programming examples also. Here are the versons I have. Bradp should be able to tell you where to get them: IDE = v1.1.2.45 firmware = 1.2.1.128 PPmac Comm Lib = 1.0.3925.26557 (dated 9-30-2010) Hope this helps. And if you need code examples, send a reply and I'll do what I can. Rick
  12. [quote='bradp' pid='957' dateline='1292613509'] We have a limit of 64 telnet connections. This could be changed if needed but are you trying to make this many connections? [/quote] No, Between 3 programmers, we're making less than 10 total. I noticed that if I ran my VB project I would get an error on one of the connections. But if I elinated an external connection from a different test application. Then the other VB project error went away. I verified it was the my code by forcing the error to relocate to other sections of code by changing the connection order. It just seemed like the limit was a lower number. I will have to do more tests. Thanks for the info. If you have any suggestions for verifying this, I'd appreciate it. Rick
  13. I've created an HMI application in VB 2008 that connects with a Power Pmac using the ComLib. I'm creating multible connection objects on multiple HMI computers and if I run the multiple apps at the same time, then some connections fail. But individually they work ok. Is there a limit to the number of connection objects that I can create? We also have multiple developers writing code in the IDE. Does that effect the number of ComLib connection objects? Thanks, Rick
  14. I believe the IDE and firmware are up to date. But the PPmacComLib is in question. Where can I get a new version of it?
  15. Here is the version information. I'll look and see what newer versions are available on the Delta Tau website. IDE release date and version: 8/26/2010 1.1.1.35 Firmware version 1.2.1.77 PPmacComLib-beta060210 installed version 1.0.0.0
  16. Example: Dim mResponse as String = "" Dim objPPMac As New PowerPmacComLib.DTCommunication bIsConnected = objPPMac.GPAscii2Connect("192.168.1.200", 23, "root", "deltatau") objPPMac.GetResponse(TextBox2.Text, mResponse) OK, sorry but I'm still confused. You said "The example code should be correct". Meaning this should create a syncronous comm? I understand the difference between syncrounous and asyncrous. But when using the comm connection created in this example, I still get the wrong data. And I thought this was a syncronous comm connection. Is the example code a syncronous comm connection? Or do I need to loop after the GetResponse method and wait for the mResponse variable to contain the results of the call?
  17. That was the conclusion I came up with also. So if I'm issuing GetResponse method calls in a single thread and I issue 2 back to back, I shouldn't have these collisions? Now my questions is about creating a synchronous connection. The PowerPmacComLib has 2 types of connections: DTCommunication AsyncDTCommunication I made the assumption (since there is no com library documentation yet) that the DTCommunication class is the synchronous connection. And that the AsyncDTCommunication class is the asyncronous. Also, the AsyncDTCommunication class has the AsyncGetResponse method. Here is the VB code examples I used to create the class object and retrieve data: Dim objPPMac As New PowerPmacComLib.DTCommunication bIsConnected = objPPMac.GPAscii2Connect("192.168.1.200", 23, "root", "deltatau") objPPMac.GetResponse(TextBox2.Text, mResponse) According to the C# demo application that came with the com lib, this is the code I should be using for a syncronous connection. If I'm wrong, would you send me an example of what my connection code should look like? Thank you for your quick response. I appreciate your help.
  18. I'm using VB 2008 to communicate with a Power Pmac. I declare an object to the PowerPmacComLib library, and open an asynchronous connection. I created a function for getting variable values, and a sub for setting variable values on the Power Pmac, which use the same connection. When using the SetVariable sub, it should return a null string when the GetResponse method succeeds. But about 1 out of 10 times(and it varies), I will get the results of a GetVariable function call which apparenty is being issued at the same time. So instead of a null string, I get a string of variable values seperated by a delimiter. The SetVariable/GetVariable calls are being made from 2 different Timers.Timer's elapsed events running at different interval times. Should I use 2 different Power Pmac object and connections? Since the connection is asyncronous, are the calls crashing on the Power Pmac side of the process? See code examples below, and thanks for any suggestions you may have. Rick Examples: Private objPowerPmac As New PowerPmacComLib.DTCommunication mResult = objPowerPmac.GPAscii2Connect(.PPmac_Address, 23, .PPmac_Login, .PPmac_Passwd) Public Function GetVariable(ByVal VarName As String) As String Dim fname As String = "GetVariable" Dim mResponse As String = "" 'Dim pos As Integer Try objPowerPmac.GetResponse(VarName, mResponse) If InStr(mResponse.ToUpper, "ERROR") > 0 Then DisplayMsg("The GetResponse method returned an error.") End If Return mResponse Catch ex As Exception DisplayMsg(fname & ":" & ex.Message) Return "" End Try End Function Public Sub SetVariable(ByVal VarName As String, ByVal Value As String) Dim fname As String = "SetVariable" Dim mResponse As String = "" Try objPowerPmac.GetResponse(VarName & "=" & Value, mResponse) 'If InStr("ERROR", mResponse.ToUpper) > 0 Then If mResponse.Length > 0 Then Throw New Exception("The GetResponse method returned an error.") End If Catch ex As Exception Throw New Exception(fname & ":" & ex.Message) End Try End Sub
  19. Well, I went though the file and renumbered all the byte offets to lower numbers and I still have the same error at the same line. but when I comment out the offending line ( and surrounding lines ) then error messages moves up and down the list. I've included the file for anyone who wouldn't mind taking a look at it. The line generating an error is marked and around line 120. Thanks. Hope someone has a clue to the problem. Rick
  20. I've created a series of ptr statements in a global definitions.pmh file formatted as follows: ptr hmi_do_WH1UprGripRelease->u.user:$108.31.1; The Byte Offsets are sequential and compile up to the previous statement. But when I increment up to the next Byte Offset like: ptr hmi_do_WH1LwrGripRelease->u.user:$112.0.1; It generates a compile error. If I change the 112 to a 0, then it compiles to up to the next byte offset over 108. If I keep changing the over 108 numbers to lower numbers, the error contiues to move down the list. Is 108 the limit for the byte offset for unsigned user data? Rick
  21. That's exactly what I wanted to hear. Thanks Brad. Thanks Charles.
  22. I just wanted to make sure the "prt"s are created in the order that I declared them so I can retrieve them in that order. I think this statement "first seen first assigned idealology" answered my question. Thank you. Rick
  23. I've declared a series of pointers to Sys.Idata and Sys.Fdata variables. I've declared the pointers to the data in a specific order, but the type order mixed matched. When I issure a GetResponse block read, and reference a pointer (example. GetResponse(PointerName,100) ) as the starting point, it seems to return the values in the order that the pointers were declared. Is that always the case? Or would I be better to organize the Sys.Idata and Sys.Fdata seperately and read them as 2 GetResponse commands.
  24. I'm wanting to read and write to a memory address on the PowerPmac from an HMI. Any suggestions on the best method for doing this using the PowerPmacComLib in Visual Basic? Thanks
×
×
  • Create New...