Jump to content
OMRON Forums

Unit101

Omron
  • Posts

    143
  • Joined

  • Last visited

Everything posted by Unit101

  1. Be sure Ix91, 81 = 0 ... so PMAC not trying to phase or look for halls ? In Motor Status for this motor is the Phase Error bit set ? If so create a Mvar and clear it manually to see if not pmac is happy... Here is setting for Motor 1, look at TSRM for others... M148->Y:$0000C0,8,1 M148=0 If still stuck please email me your configuration file and specs for your system...how many motors, amplifier control method (analog, pwm...) encoder feedback type. I'll go thru this and see if I can reproduce the problem. send to mesposito@deltatau.com thanks, mike
  2. Since you properly have I101 = 0 for no commutation then you are likely getting the Phase error from a missing Phase clock signal in the system. Check the Global status to see if the "phase clock error" bit is set. X:$6 bit 3 -if so then figure out why no clock in the system and all will be good If missing the clock... check settings for I7m00 - 7m007 for clock setup. Where is clock coming from ? likely you have a ACC-24 axis card in the rack and this is where normally the clock would be coming from. Check manuals for setup of the Phase clock on the ACC-24 (switch and jumpers) as well as the Ivars setup in CPU for this. My guess is that the ACC-24 card is not setup properly... check it's switch settings. Let us know how it goes...
  3. I see .TimeOfDay Looks like Seconds counting up during the day, but not exactly ? Can you describe this ? Handy for logging data... E.G. I see 30539.xxx so /60/60 = 8.48 hours ? Is this what it is counting ? Real time clock ? what time zone ? Zulu or PST ? Thanks,
  4. Good Idea to use Modbus Slave software. The error your reported is common error reported by windows. You can google this and get below: http://www.pscs.co.uk/helpdesk/vpop3help/vpop3/socket_error_10049.htm It means that your PC can't see that IP address. Likely: 1. You have put in the wrong IP address for the PMAC into mobus slave software. 2. Your computer is on a different sub-net from the PMAC. Tell me what the IP Address for your PMAC is ? What is IP address of your PC it is talking to ? - they must have the first 3 values matching - example: both must be same like this 192.168.0.xxx - the xxx must be different, but the first 3 values must be same Also to test... go to a Dos Prompt on your PC and use the Ping command. Example if you PMAC is at IP 192.168.0.200 then go to Dos prompt and type "ping 192.168.0.200" and see if it suceeds, if it does not then either you are not connected or the IP address is wrong, or the IP's are not on same subnet (first 3 values the same).
  5. See this note sheet for Modbus tips. Look at Tab "Wago2" to see setup like yours. Mike-Modbus-Notes1.xls
  6. I think the issue is that you are using the FC5 command with a count of 16. FC5 is a Single coil (output) command. Set the count to 1 and it will work.
  7. In global definitions.pmh global myPvar; In C routines how to access this variable ?
  8. Yes you have 2.36... I checked against my release files and that date matches up. And as mentioned there was a Manual Update (1) that came out with bug fixes... it is just a few files... not a whole install. So first get your 2.36 installed and working... then email me and I will send you a zip file with the UPDATE files to get up to 2.36(1) Update files are: lathe.g 7/9/2002 Ncui32.eng 7/9/2002 Ncui32.exe 7/9/2002 Pmac.dll 7/9/2002 Readme.txt 7/9/2002 I would stay with the NC2.36, works very well. Unless you are doing something very special... it is good basic NC. We have many customers still using 2.36 and love it. Also sound like you got the Mobo figured out, if not let me know I have excellent source of PMAC friendly motherboards that work perfect with old PMAC ISA cards. Issue with some mobo's is how they implement the ISA bus... it must be available for direct memory access and some newer ones with ISA don't allow this... so drivers are a issue and the PMAC wants direct access due to the speed of sending NC Gcodes from the HMI.... Hope you get it working... mike mesposito@deltatau.com
  9. No I'm not sure. Please create a new post in the forum to get help from all the support staff on this. Only suggestion I have is same old with windows, be sure to have Admin privileges, turn the UAC all the way down, uninstall, restart, reinstall... Please update the post when/if you find a solution. Thanks, mike
  10. I resent you link to example that demonstrates in a simple way the method recommended to work with Binary Rotary and Ascii buffer and DPRam for VS2005. I includes pmac code as well so with this example you should be able to create a simple version of what you need to do. I strongly suggest you work to get the example running then I'm sure you will best understand how to implement similar logic in your more extensive machine code. If you have trouble with example let me know I can help you with this since I have same code. Helping you with your larger program is very difficult since we only see code snippets and not the whole thing. The secret is to first get the logic working in as simple a system as possible... then build from there. Best Regards, mike
  11. My recommendations: 1. Be sure to use the latest PcommServer, not the older pcomm. 2. Use DPram for ALL but most simple and basic communication with pmac. - you might use getresponse to send an "occasional" command to pmac but NOT when doing buffer and move downloads while running the machine !... here ONLY use DPram to work with pmac. -you simply set up registers of data in pmac dpram to hold all the data you want, then in pmac perhaps in a plc you update these registers as often as needed.... then on PC side you simply get a group of registers at a time and bring them over, then parse the data out... -so with a single command on PC you can get 100's of registers from pmac with data such as motor position and status... -below is another example application that shows exactly how to do this... look for the function GetDPRWords() -it takes a bit of work to set this up, but once you do all the data in PMAC is easily available to your application.... and with very low overhead on the system and communications -I have also attached a doc on the comms with PcommServer -since changes in company we don't use dropbox anymore, for example application please simply email me directl Thanks, mike Guide-PMAC-Drivers-Setup-2013.pdf Guide-PMAC-Communication2012.pdf
  12. Go here to get full example HMI. https://www.dropbox.com/s/ktkqk05njfgbjjy/Pcomm2_120409.zip?n=12757969 I see you have a function PMACCom() but this does not show me what/how you are sending lines to pmac buffer ? I assume you have a line like this ? Pmac.DPRAsciiStrToRotEx(m_nDevice, command, 0, bufSendImmediate, out status); What is "bufSendImmediate" set to ? True, False ? I think this is you issue.... Since using USB you need to set this value to "FALSE" until you are ready to send the LAST set of lines to buffer, then you set this to TRUE. It is a bit tricky but look at example code: private void loadNcToBuffer() function closely... Look at the do-while loop that contains the Pmac.DPRAsciiStrToRotEx() function, you can see that the "bufSendImmediate" is changed while downloading.... Thanks, mike
  13. Hello, I have written many HMI's that use DPRam and the BinRot to download millions of lines of NC code... actually running programs for weeks at a time on a single machine. I have a good example application showing basics of doing this both with ASCII and Binary type buffer. But it is written in Visual Studio and using PcommServer If this will help you I be glad to give you a full copy with source. -I have attached a pdf that describes this demo app... Are you connected to PMAC with USB or Ethernet ? Can you show me the line of code actually sending the line to execute to the buffer ? I'm confused reading all the posts above... and not sure what is or is not working ? Can you describe simply what IS and what IS NOT working ? I also have some examples of using PMAC Interrupts and data gathering techniques. Note that with my NC hmi I use multiple threads, one to send the data to the pmac buffer, and a different thread to update the HMI to watch motor positions, status, NC line number executing, and even draw on simple 2D graphics the motion as it is executing... Thanks, mike PComm2 Delta Tau Example HMI Program.pdf
  14. Sorry the example code not working well for you. I see a problem and not sure why ? Your posted function below does not match what I see in PComm. ?? BOOL PmacGetGather( DWORD dwDevice,UINT num,LPSTR str,UINT maxchar ); ... here is what I think they mean... but I've not tested dwDevice = pmac number num = source set of data number 0,1,2,3 str = return string to put the data into maxchar = max number of chars for the return string of data bool return = success or not Mine looks like this: .GetGather(int dwDevice, int num, ref string pStr, out bool pbSuccess) My Manual shows: [C#] virtual public void GetGatherSamples( int dwDevice, int sourceNum, out object pVariant, out bool pbSuccess ); So perhaps we using different versions of Pcomm ? I don't think yours is latest ? In my example I use a different function ....CollectGatherData() classPComm.Pmac.CollectGatherData(classPComm.DeviceNum, out DataSo, out NumSamples, out Suc); classPComm.Pmac.GetGatherSamples(classPComm.DeviceNum, 0, ref Data1, out Suc); Also in examples note that you must first call CollectGatherData() -this call gives you the Number of source data sets you can collect -so if you get 3 sets in return ... when you make call with GetGather() the "num" can be etiher 0, 1, or 2 to get that SET of gathered data... I think we need to figure out what version of Pcomm you using and perhaps get you to newer version... when you bring up PMAC device selection dialog what is the version reported in Title Bar ? Mine is "Pcomm Version: 4.3.0.0" I will email you my version of Pcomm install with some additional docs. Let me know how it goes.... mike
  15. This is example of what I think you need. Below just uploads Ivars to a single string then puts them into an array. But same function will upload any, all you want. //note this struct is part of "namespace PCOMMSERVERLib " public struct DEVUPLOAD { public short comp_tables; public short coord_sys; public short important_register; public short ivar; public short macro; public short motion; public short mvar; public short option_16; public short option_16e; public short plc; public short plcc; public short pvar; public short qvar; public short racro_ring_order; public short single_backup; public short user_backup; } string pmacIvarsUpload = String.Empty; int pstatus = 0; DEVUPLOAD pUpload = new DEVUPLOAD(); pUpload.ivar = 1; try { classPComm.Pmac.Upload(classPComm.DeviceNum, pUpload, out pmacIvarsUpload, out pstatus); } catch { string errMsg = pstatus.ToString(); } //here this logic will parse the above string to an array with EACH element contains a single Ivar... //here we will process the string data from the Ivar upload //-we will create a string array with all the Ivars parsed from the uploaded string //-we will also get the string array index to I0 then we can step thru the rest //here we create a temp working string and remove all ";" from the uploaded string string workingString = String.Empty; workingString = GVars.ivarsUpload.Replace(";", ""); //now we setup to use the SPLIT command which will parse the string data to an array char[] delimiterChars = { 'I', ' ', '\n', '\r' }; string[] ivars = workingString.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries); //now find index for I0, if (1st-2-chars != "0=") not I0 for (int i = 0; i != -1; i++) { //first need to check and be sure we not at end of array // if we are there was a problem getting ivars from pmac if (i < ivars.Count()) { //here ok to keep checking if (ivars.StartsWith("0=")) { GVars.indexI0 = i; i = -2; } } else { //here if a problem, the array must not have ALL ivars // in it - this is a comm problem with pmac //0103=Failed to Load Parameters\n - Close Software, Shutdown PMAC, Reboot Computer,\n Try Again XtraMessageBox.Show(GVars.rm.GetString("0103"), "Error 1368", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } //now we have clean array of ivars starting at the GVars.indexI0 we can load to an ArrayList
  16. I have seen this where you had a duplicate IP on network... so the PING test succeeds... but it is being fooled since it is not really a PMAC making the reply. So the Test is OK... but can't connect since not really reaching the PMAC device. So are you directly connected to PMAC or thru a larger network ? I've never seen a typical firewall setup cause issue... disable the firewall and test ?
  17. Hi Jeff, I have plenty of examples in C# code doing gathers after e.g. Tuning moves.... and be glad to share. Please email me directly so we can transfer that way. mesposito@deltatau.com Regards, mike
  18. Awesome jub !! I dig it big time... thanks for sharing. Pmac users are top....
  19. I have loaded and tested it in Win8 64bit and works fine. I've only worked with Pewin... mike
  20. Boooyah ! R u the Man or WAT ! Will try this out and report back... As we say down south... "more than one way to skin a pole cat" *** I tested your code and worked exactly as described and expected. - my test was with a Turbo PMAC EthUlite + 2x Yaskawa SigmaV with 85M MACRO ring -I added 2 attachements: 1. your code in a simple .pmc text file for download if desired 2. PDF shows code and results screenshot running in actual test thanks for the quick and great support... this is a valuable tip that could be applied to other similar logic needs, GetPmacFwarVersionInPlc.pdf GetPmacFwareVerToPvar.pmc
  21. Is is possible to get the Turbo PMAC Firmware version into a Mvar or Pvar so that it could be read from a Modbus Master ? Is there a register in memory map that holds this value that I could transfer to my own Mvar ? Could be either the "ver" or "eaver" value. Thanks,
  22. These type of "occasional" problems are tough to narrow down. It appears you have done what makes sense in replacing key hardware parts. -So it is really a case of "process of elimination". -It is either a Hardware failure perhaps intermittent or a noise issue. -Since it has run for some time with no noise issues this is not likely unless there has been some change such as replacing cables ? Also since the error is some multiple of 2 seems less likely to be random noise and more likely some hardware line issue such as a pull-up resistor failing and resulting in some loss of 2,4,8,16 bits being added to the count. -More likely I think is a Hardware issue, but if intermittent it would test out fine but later cause a problem. -Have you replaced the system power supply ? -look closely at the 5v encoder supply to be sure 5v... not sagging at all -chk the grounding of 5v supply and differential wiring from the scale to encoder inputs... - replace the power supply in GE 90-70 -You replaced the PMAC ? -did you swap it with a known good say from another machine ? - or is is a older spare off the shelf ? - is is NEW or used ? -One way to narrow this down would be to bring the encoder signal from the scale to a Secondary channel ALSO counting at the same time. -Do you have a extra motor channel on this system now not being used such as a Motor #8 ? If so you could wire the encoder input in parrallel to this channel then look for the error to occur. If it duplicates on both channels than the issue likely in the signal to the PMAC, not in the PMAC. Otherwise it looks like a PMAC issue. How often does this error occur ? -every hour, 10 min, once a day, week.... ? How do you detect that it has happened ? machine problems ?
  23. Attached is a App Note with basic information on setting up and communicating with a Turbo PMAC.Guide-PMAC-Communication2012.pdf
  24. Yes as JeffL mentioned in order to build your own HMI like the example you have you must purchase and install the PcommServer library. However it is also true that you can create an application that only uses the ASCII buffer and spools the data thru a serial port to the PMAC. The HMI code I gave you shows how to use the ASCII buffer. But it does not do this thru the serial port only. I suggest if you need to create a custom HMI that you purchase the Pcomm Library. It is a one-time cost with no royalties and includes documentation and more examples. With this you could easily use the HMI example you have and develop your own buffer type HMI using either the Binary or ASCII buffer. The part number for the PMAC Communications Library is "3A0-9PRO2-35x" called ACC-9PNPRO2 and cost is $499.00
  25. Hello, I'm not sure I understand your question ? You want to break up the single large (225000 line) G-code to smaller programs of about 20,000 lines each. This is OK... and you could then download them One by One to PMAC and run each one, but they would run then stop, load new one, run, stop at end again... so they would not in this way smoothly continue from one to the other. However in your HMI application you can easily OPEN the Binary Rotary Buffer, then open the first G-code file, load this to the buffer, and when you see that all lines are in the buffer you can open the next G-code file and simply continue loading this to the buffer and there would be no stop in motion as long as we keep sending lines from the files faster than the PMAC can execute them. You could also create a single array and load all the files to it then send this to PMAC thru rotary buffer... just need enough memory in PC for this. So it is no problem to send several G-code files thru the buffer one after another... this is all handled by your HMI application code, the PMAC does not care of know where these lines come from, they are just put in the buffer one after another using PcommServer functions. You also mention "seperate program" so you want to load each of the 20,000 line files into a different Program# of the PMAC ? -this can be done but NOT with Rotary Buffer, you only have ONE rotary buffer open at a time -you could load the files into different program buffers on PMAC just using the Open Prog#... Close and download command. - just are limited by how much memory you have on PMAC as to how many of these you can load - then you run each one using PMAC logic for normal motion program $1B22R to run motion program #22 in CS1 Not sure I answered your question... let me know if need more clarification...
×
×
  • Create New...