innoaloe

MrPLC Member
  • Content count

    425
  • Joined

  • Last visited

Everything posted by innoaloe

  1. Fins communication NX1P2

    If you're using FINS/UDP then no. If you're using FINS/TCP however, you need to setup Client/Server IP that will be connected to the NX1P2
  2. Questions about CJ2M EIP

    I did a little browsing around and cannot find any EDS file for Kinetix 300. If Rockwell had any, it will make things much more simpler. The manual also only mentioned Explicit Messaging user guide using Micrologix. The same thing (Ethernet/IP through Explicit Messaging) can be achieved using CJ2M, that's for sure, as how explained in PMCR's example. "Omron said it will take weeks" : Yes it will, considering they might don't have any Kinetix 300 drive to test it out. Explicit Messaging is quite a pain to code in. Not impossible, but will take time to do trial and error.
  3. KEEP in ST

    Something like this. ST is basically harder to do the usual On/Off logic. I mainly use it only for Maths or repetitions IF Start AND NOT Motor_On THEN     Motor_On := TRUE; END_IF; IF Stop AND Motor_On THEN     Motor_On := FALSE; END_IF;
  4. read velocity from analog input

    If you don't have any trouble, then what is your problem?
  5. NX-SOD400 Safety Output Parameter

    I'm not quite sure what are you trying to say... Do you want to have two safety outputs which toggles at the same time, or you want two safety outputs that are independent? There are options for both of them :
  6. Omron 3G3HV Problem

    About to post this but I was late :D  Anyways it's good to know the problem was solved. Anyways, measuring SC will always give you 0 Volt. (See page 197 from the star-circuit manual) And you can actually use PNP mode, but that'll require external power supply.
  7. OMRON J1000 - EMERGENCY CIRCUIT BEST PRACTICE

    Yep, it will not. You need to be careful tho. The mechanism of your machine might need a braking system for the motor should sudden power shutdown occurred.
  8. OMRON J1000 - EMERGENCY CIRCUIT BEST PRACTICE

    J1000 is a very old model @_@ There is no Safe Input implemented in this Inverter so your best bet is to use the External Fail input, which will trip the motor if triggerred.
  9. What I know since the very old release, only one NB is allowed on a single project, but multipe PLCs can be put on a same project. But you are still able to connect multiple NBs to a single PLC through ethernet. You just need to Save As the project as a new one, and change the IP Address of the NB in that new project for the second HMI.
  10. Well, if that does work it's a new info to me. Personally I'm not an active Beckhoff user, but Ethernet TCP/IP on whatever device is the same, so you just need to replicate the required stuff in Beckhoff settings (like gateway and Registry settings). I might try this later on, but using Omron PLC. The issue would be finding out the Remote PC IP Address of the connected PC, since the newer TeamViewer version uses ID and Password instead of direct IP Address. However you can still find the IP from Team Viewer Log file (quick google search will show you the method to find it)
  11. I don't believe it's possible... TeamViewer is a Desktop Remoting app as far as I know, that means you can only access what's inside the Remote PC, but not using programs from your Local PC to access the Remote PCs network, USB ports, and so on. You don't need TwinCAT installed on your Local PC, instead it has to be installed on the RemotePC. Then you remote it via TeamViewer and run the TwinCAT there.
  12. Nope... no way to do that on the current NA. I don't know if any manual states that, but it clearly presented here : https://www.youtube.com/watch?v=8WrxdejO2fI
  13. Thanks very much @IO_Rack, this will certainly make things more easier. The Resource table can be made easily using Excel also. Sysmac still got a long way to go I'd say. Dev team seems kind of overlooking NA, compared to safety and motion components that's growing fast and steady. NA manuals especially is not well documented even though it has a lot of possibilities compared to NS/NB. And the price is meh...
  14. Working with NA is like, some things that used to be hard become simple, but some things that used to be simple become hard instead. I believe you want to produce something like a Word Lamp in a usual HMI, where an integer value represent a state, and on each state you can register different Text / image. NA doesn't incorporate such intuitive design method anymore. Instead you have to assign an internal String variable in the NA on your DataDisplay or any object with Text you need. You also need to map the Integer variable from NJ to the NA. After that you need to use Visual Basic codes to change the value of the text. I usually create a Global Event with type of Interval, which will Call a Global Subroutine. In the Global Subroutine you make a Select Case statement which will check the current value of the integer. On each possible value you assign a new value to the String variable.
  15. You can create a Database Connection from CX-Supervisor to access an existing DB, so instead of the DB reading data from it, CX-Supervisor can write it's data to the DB instead The fastest PLC data update rate using CX-Supervisor is per 1 second, unless you're doing it through scripts, but it will cause overheads sometimes. Instead of using CX-Supervisor,  personally I prefer to use CX-Compolet instead. It's some kind of DLL library that you can use to develop GUI application using Visual Studio or other .NET compatible IDE. This will give you much more better data throughput, although of course understanding of .NET programming is required. If you prefer to use CX-Supervisor, best approach is to buffer multiple data first inside NJ (let's say array of 50 words or so, depending on your inspection speed). Afterwards per certain interval CX-Supervisor will read these data then write in order into the Database. It is much more bandwidth efficient and ensuring your data is not lost.
  16. Kepware OPC Server does provide such OLE interfaces, but for Omron NJ what I know so far they released it separately, although I don't know whether it's in the form of additional driver (which means you need to buy the standard package first) or you can purchase that type only. Latest Omron CX-Supervisor (V3) already provide connection to NJ. When you purchase CX-Supervisor V3 and it's Runtime, you will be equipped with Sysmac Gateway software which is the actual OPC. Through this you can import Variables from NJ directly without remapping them. As an alternative, if you actually didn't require any user interface screen at all (which SCADA provides), you can instead use the Omron NJ-DB Series CPU which provides direct database connectivity to some common Database engines (SQL Server, OracleDB, MySQL are in the list). You can connect this CPU directly to the network of the Database Server and throws data into the tables directly when you need it. I'd personally prefer this approach since faster data logging can be achieved (with SCADA you will be limited by SCADA's refresh rate. With NJ-DB you can log every CPU Cycle). If by any chance the user need the GUI to display the database contents, it is quite easy to produce with Excel (Excel can connect to a Database Server easily), or you can make some custom program based on Java or some other language.
  17. NJ and IEEE 754 float

    IEEE754 24-bit is actually a 32-bit value for what I understand. 24-bit for significant digits, and remaining 8-bit is the exponent bits. So from your data, the actual data should be : byte[0] = 0x41 --> 3rd Significant bits byte[1] = 0xF0 --> 2nd Significant bits byte[2] = 0x00 --> 1st Significant bits byte[3] = 0x00 --> Exponent bits Now there is a function which called AryByteTo, which can convert Byte Arrays to almost anything. The only issue you have to solve is to rearrange the byte order, into something like this: byte[0] = 0x00 --> Exponent bits byte[1] = 0x00 --> 1st Significant bits byte[2] = 0xF0 --> 2nd Significant bits byte[3] = 0x41 --> 3rd Significant bits To make my point clear, here's a screenshot of a test :
  18. Auto Assign Addresses To Symbols?

    Let's say you make a Variable with BOOL Type, it means it will automatically occupy one bit. Let's say you start by W0, it will occupy W0.00. 'Say next variable is also a BOOL, it will occupy W0.01 Now let's say the 3rd variable you make is a WORD, it will occupy the entire W1 and ignore the rest of W0.02 - W0.15. 4th variable, let's say it's LREAL, it will occupy 4 Words of W2 ~ W5. By any chance in ladder on some parts you're using direct address instead of symbols, you need to check whether that address is occupied by the symbol or not. A good practice for auto-allocation usually is to separate your bit allocation and WORD / longer data allocation. If you notice, auto-allocation lets you allocate certain memory only for certain type of variable. So in practice let's say you can allocate W area memory to BOOLs, and then allocate D words for all numbers and strings. Also keep in mind the PLC will still use the auto-allocated memory for Special IO Units / Functions (let's say like CJ1W-AD081 Unit0 will always occupy D20000) so make sure your auto-allocation doesn't overlap with those.
  19. Auto Assign Addresses To Symbols?

    Yes, it is possible, although I didn't check what PLC model able to do so. At minimum CP1 / CJ Series able to do it.   You go to the menu PLC --> Memory Allocation --> Automatic Allocation, there you add the Starting Memory Address and maximum length of auto-allocation. Afterwards, whenever you create a Symbol, you will see the Auto-Allocated memory assigned to it. You need to consider the word length of each variable too, because Auto Allocation variable will depend on the symbol type you use.
  20. Fatal Error?

    Good to hear that. CJ1M is pretty old... consider using CJ2M if you're going to do real projects later on.
  21. So just for anyone might interested, this past one year Omron had completely acquire Adept Robotics (California based robot manufacturer). The products acquired including all Delta Arms and SCARA (Quattro, Hornet, Cobra), also some Articulated / 6-axes robots (Viper), programmed with the ACE software. Other than that Adept also have Lynx AIV whose name is now changed to LD-Series. Aside from having an already established Robot Controller with by acquiring Adept, Omron also developing it's NJ CPU to control mechanical arms that can be user-built, with condition that it uses EtherCAT based Servo Control. The current version of NJ501-4XXX series PLC supports control over Delta Arms (3-axes + Rotation, 3-axes, 2-axes + Rotation, 2-axes), SCARA, and your usual Gantry XYZ+Rotation robot.   If anyone interest to discuss something about those do post here, or maybe create your own thread.
  22. Fatal Error?

    This error can mean either : 1. You don't put the End Cover properly, or the End Cover is damaged (there is a PCB there) 2. The IO-Table of the PLC was set on the previous machine (for additional slots like IO, communication unit, anything), but you removed it from the PLC and not yet doing resetting of the IO-Table I assume you pull off other things connected to the PLC. Related to your "Clearing Memory" post I saw here too, you can open the menu PLC --> Clear all Memory Areas to delete all settings previously done. Regarding IO Table, you also need to open the IO Table and Unit Setup on the left of CX-Programmer, then go to menu Options --> Delete to clear the previous settings. All this need to be done when you're Online to the PLC and the PLC is in Stop/Program Mode After that you just need to Transfer again all settings done, including the new IO-Table settings.
  23. Sysmac delta robot palletizing

    By that question I assumed all others are completed (Kinematics, Axes Group, etc.) Now onto the palletizing, algorithms went like this : You use MC_SyncLinearConveyor to grab the item on the conveyor. It's a very good FB that already implements Trapezoidal movement, and follows Conveyor movement. After you confirm that the robot already grabbed the item (via sensor or timing or whatever), you execute MC_SyncOut to move the robot up in Z-Axis. This will also remove the synchronization to conveyor movement. Afterwards you can use MC_MoveTimeAbsolute to move the robot on it's palletizing position. This typically need two movement, one is to move the robot on the top of place position, and the next one is to move the robot down on Z-axis. Move the robot back up with the same FB, then repeat from 1.   Another approach that I use often is to use MC_SyncLinearConveyor eventhough the place location is static. The reason is because it implements Trapezoidal movement automatically, compared to MC_MoveTimeAbsolute which requires you to execute two different FB in succession and using a Buffering Mode. I usually created a Virtual Encoder Axis whose position stays at 0, to help place part of the MC_SyncLinearConveyor.
  24. Alternative to SET/RSET

    For some reason though, Japanese programmers tend to love JMP/JME  :D, whose programs I hate to troubleshoot.
  25. NC contact

    The double line on the left indicates that a DIFU instruction is controlling that certain Symbol. You should be able to Search for DIFU instruction where the R1_PUMP_STOP is inside it.