viman
MrPLC Member-
Content count
45 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Calendar
Everything posted by viman
-
Controlling Yaskawa servo with NX via ethercat
viman replied to viman's topic in NJ Series / Sysmac Studio
No, there's no errors. Neither from EC nor MC (from plc/drive side, all OK). The move instructions do not throw errors either and they do set the done signal. I can't home the servo at all since it doesn't move with MC_Home. There's something weird going on though.. MC_Power powers the servo but I can still move it with my hand. There's the internal relay activating inside the drive, but the servo doesn't have power whatsoever. Which is different from when I jog it from the yaskawa software - it sounds much louder, like they always sound like, and I can't move it manually (like it should be). I have connected a spare Omron ethercat servo I have and it works with the same code, so either there's something wrong in the PDO mappings/ESI file or the drive is faulty/not compatible. -
Controlling Yaskawa servo with NX via ethercat
viman replied to viman's topic in NJ Series / Sysmac Studio
AFAIK it's not necessary as long as the motor can reach the target speed. But I did try all kinds of values for acc, dec and velocity. From single digits to millions. The motors don't move since the encoder is always showing the same value. It does change if I move the motor by hand. -
I will have a look at the functions, but for now I suggest you send and receive using only the plc and your computer. That way you can clear out it's not the plc. Normally I use the Hercules tool (HW group) or Wireshark. Hercules lets you set up tcp/udp servers and clients though. You can receive/write from Hercules back to your plc. There's many things that may not work here so the first thing to check out is that the UDP loop in the plc works.
-
The IO addresses are printed on the covers of the CP1. You will see '0CH' '1CH' on the top cover and '100CH' '101CH' on the bottom one. And next to them 0, 1, 2, etc.. that's telling you where the IOs are mapped. 0CH + 0 = 0.00. 1CH + 10 = 1.10. Inputs start at 0.00 and outputs start at 100.00. You can see the straight list in Programmer by clicking this button: If you want to see the actual value:
-
Old topic but I'll leave the answer. Some plcs - I recall CP1s are in this category, correct me if wrong - aren't capable of active FINS communication. They can't send out FINS commands but they do reply to FINS requests. The way to do this with a computer is to flat-out send everything from the computer. You don't actually have to do anything in the PLC for this to work - you just have to send both the read and write commands from the computer. The plc will reply to both, one with the value and the other with a response. Obviously the data needs to be in a fixed memory address. And the only way to know from the computer when an event happens in this case is to put the reading cycle in its own thread, and send the read commands every 50ms or so (it's called polling). It essentially acts like an HMI. But you have to set some thread locking mechanism in place in case you try to write to the plc at the same time you are reading, since you will be using the same UDP writing function to do both. If you are not willing to code all of that you better mount a plc that is capable of sending dedicated FINS messages, like a CJ. Then you can split UDP reading and writing. But in my opinion it's worth investing in the polling solution since it works for every controller. I have wrote both kinds of software and I ended up using the polling one for everything. The price difference of mounting a superior model just for that is too high.
-
Sysmac Studio Improvement Request
viman replied to BITS N BYTES's topic in NJ Series / Sysmac Studio
I tried both from the sync screen and the dedicated button in the ethernet/ip settings window. It did not work. It's not that it doesn't send the data to the plc - it does, the progress bar moves and Sysmac confirms, but the connection with the target device just doesn't work. But it does if I replicate the connection in Network Configurator and download it from there. Maybe it's because this target device needs a configuration size and instance, which at first you can't set from the eip settings window. But you can change those if you right click the eds file you add to the toolbar on the right and click on the edit button - the parameters that appear are the same you set in Network Configurator. Same results though - the same identical configuration in Sysmac does not work. I have confirmed this by downloading the settings via Network Configurator (connection works), and comparing the plc settings with the project settings of Sysmac. It says there are no differences, but if I download via Sysmac the eip connection stops working and throws the Tag Data Link Connection Failed error. If I download again from Network Configurator the connection starts working immediately. Last time I checked (~20 days ago) I had the latest version of Sysmac but I'll see if there are updates when I have some time. -
Sysmac Studio Improvement Request
viman replied to BITS N BYTES's topic in NJ Series / Sysmac Studio
Can the Omron gods take a look at the download Ethernet/IP options to controller function? I'm currently doing tests and I'm about to have conclusive results. The plc is not taking the proper EIP configuration through Sysmac, but it does work if it is sent by CX's Network Configurator. There's definitely a bug cause I installed a NX with EIP comms two years ago and I had no problems whatsoever. -
Which of these encoder cards you plan to get? http://www.ia.omron.com/products/family/3190/ As an ethercat slave, they have a parameter called 'Max count setting' which lets you rise it up to 4294967295 (32bits).
-
Well, after rebooting the system and removing the OMRON folder from C:\ they are all there. Solved
-
Can anyone tell me if they can see ID5442 or OD5256 in the device list to add to a PLC? My list doesn't go any higher than 3k for I/O cards. Thing is, I have ran the Omron updater for Sysmac Studio and there's no updates for it. Mine is showing 1.30.0.17
-
I'm thinking of creating a variable to hold the encoder pulses and feed it directly the encoder value. That way it can go as far as big your variable is. However, in the days of CP1 you had to use instant update functions (I can't recall the exact name), cause otherwise the PLC cycle isn't fast enough for an encoder. I have no idea about this in the new Omron PLCs though.
-
Omron NX102/NX1P2 cannot trigger MOXA ioLogik E1212 Outputs through Ethernet/IP connection
viman replied to jack-s's topic in NJ Series / Sysmac Studio
Go back to Ethernet/IP device list, right click the PLC and monitor the status. Navigate through the tabs, everything should be blue. Check the output tags, if something's wrong with the outputs it should be shown there. -
TCPSocket Connection with NJ501-1300
viman replied to Mariangela Camarda's topic in NJ Series / Sysmac Studio
I guess you mean you are using SktTCPRcv. In that case, the error you are receiving means that nothing is received on the PLC side in the timeout value you specify. Try with a longer value. -
By any chance, have you downloaded the CONFIGURATION to the PLC and powered it off?
-
Setting up Omron C40H with external RS232C panel in CX-programmer
viman replied to Trimjohan's topic in CX-Programmer
That's an old controller and I haven't used it, but you are probably missing some parameters regarding the RS232 port. Baud rate, parity - those are not inside the program and, if your backup didn't contain the whole project, you need to set them again. -
Overcoming 'STRING type or an Input Output variable is not supported'
viman replied to viman's topic in CX-Programmer
I figured it out. Following the previous example... I added an input that acts like a proxy to this property that I could not change. This input turns the output to FALSE when I'm done with it. -
Overcoming 'STRING type or an Input Output variable is not supported'
viman posted a topic in CX-Programmer
I get the input of an encoder and do operations based on that, for at least twenty object 'slots' at once. Program is on ladder since client needs to be able to modify it at will, but I'm using structured text functions to handle all the messy operations, since every object has properties and data, and up to twenty can be running in real time. This is a CP1L. Instead of instancing those function blocks twenty times each, I keep a single instance of them one running all the time, and output TRUE when one of those objects raises a valid comparison. In essence those FBs compare each objects' relative position to the encoder against defined points. The picture is an example of the functionality I'm needing. When one object completes the FB task, one of its flags turns ON so that it can't be used anymore. The issue is that without an input/output ST variable, this flag stays ON no matter what, and I need to reset it from outside so the cycle can begin again. The inner FB bit linked to this output stays ON since nothing inside of it makes it change. That's why I need an input/output variable. In the picture the timer would reset the bit - until the FB turns it on again - but I can't do this in this controller. Is there an elegant way to make this work? I know I could use the rising edge of the output to turn some other bit ON but that's the kind of thing I want to avoid. -
If the software says there's nothing to update - guessing you are using the compare tool - then maybe there's nothing to update. Anyway, I have experienced weird behavior too - specially working online with the first Sysmac release - and I ultimately had to DOWNLOAD everything but the unit configuration to the PLC and cycle power. You can connect directly to the PLC in the splash screen and make a new project grabbing all the data from it. After connecting it will ask you to read the data and it will tell you the current project will be closed and a new one will be created. This gets everything from the PLC. Sysmac also keeps a register of your project whenever you save. You can see the project history in the open project window, sorted by date.
-
You can store those bits in retain area H (Hbit) so that the data stays there and doesn't get erased after powering off the machine. You can have H10.00, H10.01 and H10.02 for the first object, then start at H11.00 for the second and H12.00 for the third and so on. Just SET or RSET those H bits based on your parameters and you can later use them as conditions in your program.