Bobbias

MrPLC Member
  • Content count

    16
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Bobbias

  • Rank
    Sparky
  • Birthday 04/04/88

Contact Methods

  • MSN bobbias@hotmail.com
  • Website URL http://
  • ICQ 0

Profile Information

  • Gender Male
  • Location Midland, Ontario
  • Country Canada
  1. Servo Control

    Well, purchasing is out, because this is just a learning project really... We do have a JUSP-NS600, which came form the same thing we disassembled. Right now I've kinda dropped this project. I knew servo control was complex, but this is ridiculous. I mean, sure, I've got nothing but the manuals, and the (really useful) help of the few people who actually responded to me (basically just you, when it comes to the actual servo control end of things), but I'm getting tired of fighting though all this for now.
  2. I've never understood why anyone would like that tree-like view. Too much work to navigate something that should be read in chronological order anyway.
  3. Servo Control

    So along with another drive by some other company, I've got an Omrom R88D-WT02HL drive that I was wondering about adding to this setup. Thing is, it doesnt have a Mechatrolink connector. And I cant seem to find the manual for it, either. How does it communicate with a PLC, and would I be able to use it with my current setup?
  4. Power supply protection

    Yeah, as far as I know they actually hate when you fuse the grounded conductor (aka neutral). Because if that fuse blows, things can get really dangerous.
  5. Servo Control

    Ok, so I've got it more or less working the way I want it. However, I'm now trying to use the communication ports to send data back and forth between the PLC and the MCH unit. Thing is, when I go into test run mode, there doesn't seem to be any communication while the program is executing. I've got a program in the PLC, which updates a memory location in the PLC, which corrosponds with a memory location in the MCH. I know it works, because when the servo isn't running, it updates fine. If I hange the data there, and have my program do something based on the data there, it works. But it seems that it only updates when the program isn't running... Is it supposed to work like that? What I'm trying to do is make my program interact with the user. I've got a WAIT command set to wait until the PLC sets a certain memory location to 1. And the PLC is set to change it to 1 when I press a button. I know it works, because if I leave it at 1 before the servo program is started, it works fine, but if I try to pres the button when the servo is running (and waiting for it) the servo doesn't get updated information. Is there a proper way to do this that I don't know?
  6. Servo Control

    Ahh, I haven't tested that out yet. I hadn't seen anything describing how it was supposed to work with the overtravel switches. I might still try to use the relative location idea, just because then you could customize your origin point by simply changing when it decides to use the origin command.
  7. Servo Control

    Doesn't it still require a separate signal to designate the origin? I was thinking of doing somehing like checking it's location against whatever it was when it hit the limit, and then letting it move X number of units away from the limit and sending it the signal. Of course, I have no idea if that is really feasable or not. I think I could do that both in the PLC code and in the actual motion code if I wanted to, since it has the ORIGIN function, which I can use to manually specify an origin. So I could use that with some extra code instead of simply using the DATUM command... I might try that at some point today, if I have the time.
  8. Servo Control

    My overtravel "switches" are actually 2 proxies set up with bolts that pass in front of them when nearing the edge of travel. And I'm running them through the PLC, so I can use them for more than just overtravel (specifically, I want to use one of them as the origin, and only overtravel when the second bolt passes the "origin" proxie.) I actually switched the parameters in the servo to active high, rather than active low, so by my understanding they should work with a +24v signal, shouldn't they? The odd thing is that in monitor mode, in the panel with jog and stuff, if I switch to the I/O status window, it shows me with various signals as on, and yet none of them are getting a signal form the PLC. I set my external latch 1 to be active high as well, and it still acts as though it's active low. It doesn't help that I'm not entirely sure of the pinout for the CN1 cable on the drive side. I don't know for sure how the numbering is on it, and the manual doesn't say anything specifically about the connector's pin numbers. Most of this is just guesswork, since it appears that I'm stuck with a custom cable running to the breakout box. But yes, slowly but surely, this thing is doing more and more. I do have to say that I'm happy nobody is waiting on me getting this thing working, lol. EDIT: I've got the POT and NOT signals working. I just said screw it and rewired for active low, or whatever you want to call it. Now I need to figure out how to give it an origin with just 2 proxeis at the absolute limits of movement. I decided to move the one proxie to a point where both bolts can't pass through it. So now I need to figure out how to accurately give it an origin using only the 2 limit proxies. Any hints on what I might do?
  9. Servo Control

    Just a small update on my progress: I can get it to home now. I think my pin numbering was wrong for the CN1, so I was giving it signals on pins that didn't mean anything to it. The only problem is that it seems to think it's getting the home proximity signal all the time, when it's programmed to only go off after it gets the home proximity signal, which isn isn't getting when it choses a home location. I'm gonna have to play around with the signals and settings a bit I guess. What has me confused is why the NOT and POT signals, which were the first signals I wired to it, aren't working even when they're on the right pin. I've got them on the default pins (7 and 8) and set to "Valid for high signals", which I would guess should lock it up if I'm giving a constant high signal to those pins. Unfortunately, it doesn't seem to be doing anything. Like I said, I guess I need to play around with the signals and settings a bit more. If anyone has some insight into what could be happening/not happening, let me know.
  10. Servo Control

    Ahh, the way it was giving me errors, it sounded like it wanted something on the right side. That's good, I grabbed those settings from the drive at one point, because I had no idea what they were for, lol. I was wondering what the Port stuff was for. But like usual, there was nothing in any of the manuals I've read so far mentioning that. It may be hidden away somewhere, but it's been hidden well enough that I've never seen it. Right now, I'm trying to get the thing to origin, but I can't seem to get it to. I've got a break out box on the end of my CN1 connector and that's what I'm wiring to (it seems it was a custom job, and I've already had to pull the cable apart and solder a new conductor in). I've got it set to use the DEC (Origin proximity) signal on pin 9 active high, and have that set so that it triggers a high signal when the proxie is tripped. I've got the servo set to Limit Reversal mode. The servo moves in the positive direction, but passes by the proxie and just keeps going. Do I have to manually route the Z/C axis signal somewhere for it to determine the origin? I've seen the manuals menton the "Origin Determine" signal, but as far as I know none of the I/O pins on CN1 are for that...
  11. Servo Control

    Here's the code I have so far. Don't worry about the random stuff in the ladder logic. The problem I've got right now is that for whatever reason, I'm getting an error saying that Rung 2 won't compile. No explanation, just an outright "this won't compile" error. Sa fr as I can tell, it should work, so I'm completely stumped on what might be wrong. Servo_Control_Project.zip
  12. Servo Control

    Ok, new post because I've made some progress. I changed my IORD to #3100 #00088000 D0, and it works. Sort of. I get the right numbers, but it doesn't seem to update. I tried triggering it with the 1 second clock bit, still nothing. Now I'm trying to use a counter with the .1 second clock bit to be able to change how quickly (roughly) I want the IORD bit to update. However, I have no damned idea how to use the CNT function. I just want the counter to count down, trigger the IORD, and reset itself. Is there a "done bit" or something that I can use as the trigger for the reset? (This is my first time working on any Omron software, so in some cases I really have no idea what I'm doing.)
  13. Servo Control

    Somehow I completely missed that section. The manual says that 3100h corrosponds to SW0200 and SW0201, which is directly equivalent to SL0200. IIRC when in monitor mode in CX-Motion it displays the variable SL0200 in the variable display box at the bottom left of the screen (along with displaying it in the control panel with jog and such). So if my understanding is correct, reading 3100h should read out SL0200 to a 2 word wide location in memory starting where I tell it to. I shouldn't be using odd spaced memory locations to read double sized variables, but that shouldn't stop it form reading the variable at least. And I haven't moved the servo to a location whose coordinates are larger than a single word can hold anyway. I just noticed that I should check and make sure P1AA02 and P1AA05 aren't specifying a different location... I'll post my code in a while when I can get it transferred onto the computer with the internet, but till then I'll explain what I've done so far trying to read the position data. I've used: IORD #0200 #00028000 W5 And IORD #3100 #00028000 W5 And both of them have given me those bogus results. I hope I'm interpreting how to use the IORD command correctly.... As far as I understand it, the first number is the location your reading from, the second number is the length of the read, and the unit you wish to read from (8000 to 800F) and the third operand is the location to write it to in the PLC, correct? So, I've completely changed my IORD command to see if it would do anything different. Now I've got it as: IORD #0200 #00088000 W5 (well, I've got it pointed to an actual symbol called Current_Location, that is a DWORD pointing to W5) In the memory watcher, it still continues to to update W32. As far as I can tell, -2000 somehow corrosponds with 30DAh. Even if you switch it to DA30h that is not -2000 (which is F021 if my conversion abilities serve me correctly). But seriously, why am I only getting 1 result in the wrong location when I should be getting 4 DWORDS starting at W5 (which I know is a bad location, but I just want it to transfer for now)?
  14. Servo Control

    Ok, weird issue. I've got an IORD instruction reading 3100, sending it (supposedly) to W5... I'm only reading 2 words, and somehow my number is appearing at W32. I'm not using W32 anywhere. And that number has nothing to do with the current coordinate feedback location, which is what it's supposed to be. According to the manual, the hex location 3100 corrosponds with the variable WL0200, shown as SL0200 in my program. As far as I can tell, there's no differnce between WL0200 and SL0200. But when my servo isn't moving, I get a number like 12506, no matter what the location is, and when it moves, it is anything between 28k and 46k. It drops back down when the servo stops. I'm moving the servo from -25 to 2000, then sending it a SPEED [J01]100T0; DWELL T500; SPEEDR [J01] T0;, and them moving back to -25. And I'm triggering the IORD with a DIFU generated by the 1 second clock pulse.
  15. Servo Control

    Thanks for the quick reply. I admit, I know very little about servo control, as I am a co-op student. I've been pouring over every manual I can find related to this (that my acrobat reader will open :/) and it just seems like a lot of important info is missing/assumed you already know it. The servo is mounted on something that came off a machine we disassembled (It became known as the "De-thumber" thanks to an incident, and was deemed unsafe) before I started my co-op positon. There are 2 proxies mounted to watch as the stuff mounted to the top of te ball screw (not sure what exactly to call everything, lol) passes, presumably used for overtravel and origin. I could see using one proxie as the origin when the first of the 2 bolts passes in front of it, and as overtravel if the second one passed it (the stuff mounted to the ball screw has 2 bolts that pass by the proxies). No actual overtravel switches other than the proxies though. I wasn't sure exactly how the origin search actually worked in the case of an incremental encoder. I've done computer programming before this, and have had a bit of practice on AB PLCs, so I'm not entirely new to PLCs at least, but this is definitely a much more involved project than anything I've touched before, lol. But I always welcome a chalange. As for the stuff about changing the drive's memory, and watching it, which manuals should I be reading up on, and could you maybe give me a run down on how the addressing works in the drive? I'm still sorta grappling with the addressing on the PLC, since this is the first time I've touched an Omron one. I've transferred the advanced settings for the MCH unit from the drive, and noticed that it's got a couple ports mapped to different memory locations (some in CIO, some in DM, and some somewhere else). Is there anywhere that really explains how these ports work? I'm fine with reading manuals and learning from those, I just need someone to help point me in the right direction, and maybe give me a pointer or clarification when I feel like something is ambiguous or not mentioned in the manuals.