MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

8 Neutral

About innoaloe

  • Rank
    Omron Engineer
  • Birthday 03/24/91

Contact Methods

  • Website URL,,

Profile Information

  • Gender Male
  • Location Jakarta
  • Country Indonesia
  • Interests Drawings, Piano, Japanese Music

Recent Profile Visitors

1081 profile views
  1. OMRON Input Pulse to SET Instruction

    Right-Click on the STARTCOIL contact and choose Differentiate Up. It will make STARTCOIL to energize the SET instruction only when it transitions from Off to On, so one-shot only. If you want to re-energize the SET instruction, the said STARTCOIL then should be switched Off first then On again.   A keyboard shortcut for the Differentiation is Shift+@ for Differentiate Up, and Shift+% for Differentiate Down.   Alternatively you can also use Differentiation on the SET instruction itself. Instead of only SET, change it to @SET. It will then be triggered only when the left-side inputs turning from Off to On.
  2. I've been into various forums, and if talking about technologies, computer and electronics forums are the best in terms of a real communication. Automation forums are meh... but been working in this field, I can understand the reason why people are not that interested in uncommon application. Computers and Electronics mostly will relate to your hobby to which uncommon topics will generate interest for others to try doing the same. Automation? It's more about your job or revenue you can get. I rarely find fellow Automation person who like it for a hobby, aside some College Lecturers who also run an automation service. Uncommon topics just doesn't sell that well, and putting too much thought on something that generates nothing might seen as useless effort :D. I don't mean any bad to other forum users. Many are being very helpful. It's just that maybe in the first place you asked in the wrong place. I guess consider to ask the vendor local rep 1st, since they will have responsibility to give an answer, and if they don't you have the power to file a complaint :D
  3. Hi Michael, in all honesty I don't know whether it can work or not, since I had no previous application using LinMot, but seeing your Rockwell example, they are using Virtual Servo and Virtual Encoder axis as the streamed data. Now, as you already know before, the cycle-time of NJ can be set to a fixed 2 ms, and from my previous example, I am using the said Virtual Servo. Virtual Encoder also applicable in NJ. So my guess is that we're making these two Virtual Axes to represent the command position (Virtual Servo) and actual position (Virtual Encoder) of LinMot. These values later on sent to the related EIP tag.
  4. cj1w etn21

    A flashing ERH led means your Node Address is set incorrectly. ETN21 by default requires Node Address to be the same as the 4th number of it's IP Address. For example, if your ETN21 IP Address is set to, then the sum of Rotary Switch for Node Address should be set to 1 also. Make sure to set it right.   Whether it's true or not depends on your ETN21 setting in the IO Table. Until you can make any screen capture or whatnot, I doubt we can give much input
  5. Hello Michael, appreciate your messages, but in the mean time I will keep this in the forum, should any other may encounter this. I still got many things to close before this month ends, cannot really keep up with the forum. I never had any experience with LinMot Drives, but I do know how Ethernet/IP works, so just some inputs to you : You mentioned that when you pressed Read Command on LinMot software, the Command Header changes to 256 (or 100 hex). I might be wrong, but I believe instead of using Read Command, you should use the Send Command. A little look on LinMot Talk manual mentioned that you should check on the Enable Manual Override checkbox before you can Send any command to the drive. I dunno if you had done that or not, but I think that should be the one. You can test whether the command header works or not on that software before moving to NJ. If by all means that doesn't work, then NJ won't either. Numerical Control basically stands for processors that can create motion path by mathematics equation. Think of a X-Y table with two Servomotor driving linear actuator for example, and you want to move diagonally. We only need to put the target X,Y coordinate, and the processor will automatically calculate required position and velocity for both servo. Now, Omron NJ does have this capability with it's EtherCAT and Pulse Output control due to the fast communication speed, but what I know, Ethernet/IP by it's nature cannot achieve this. Regardless of that, you should first try to send PV Stream command from step 1 mentioned above. If it able to do so, then the Ethernet/IP interface should be able to keep up with it. Later on in order to make sure position data updated every 2 ms, you should just use a Timer in NJ to update the P and V value A quick look on LinMot Ethernet/IP manual here from page 27, it shows the memory mapping between LinMot and Master unit (in this case NJ). Since you had LinMot EIP drive, I'm assuming you had been able to set Ethernet/IP up, so mapping those to NJ would just be a bubble over waves. Then you can test whether the PV Stream command works or not. Hope things moving smoothly
  6. Big Tricky Omron Question part 2

    Hi Michael, good to hear things are progressing well. Some notes I can add : Warnings not necessarily a problem. In case of my example, those two Local Variables got nothing to control them, that's why Sysmac warns us. Clearing such warnings can either by making them a Global Variables (Sysmac will suspect they're being controlled from HMI), or making a Coil for the same Local Variable (that way Sysmac knows that the variable can be controlled). In the example I did not control the TON activation, so it starts straight when the CPU is booted. As to why CSine kept on changing before Axis was activated is because the TON will keep giving increments on the cycle time, and thus it will be recalculated. In case of activation timing, I suggest you make an interlock to the MC_SyncMoveAbsolute when the servo is not yet in Home Position. Means we need to finish Homing first before starting the CSine. Also when triggering the Homing, you should reset CSine, all FSine, and all SineTime to zero. Looking at your video, the Home Position is not in the middle of the tank, more like in the far back. In that case maybe we should add a centering offset to the CSine, like : CSine = Offset + CSine + FSine[j] to prevent negative position value. The reason some boxes are not changing is because they're in a FOR Loop which is indexed by the j parameter. Because j kept on changing, Sysmac will not show each array index values. You can however see each array index values changing from the Watch Window (IIRC the shortcut is Alt+F3, the toolbar icon is glasses with a square behind it), or just use Data Trace. The reason CSine to the left is the same as CSine to the right is because Sysmac can only monitor the latest value of the variable, so it won't store the previous value in the right equation. On the other note, the TON is not working randomly. It basically starts when the In input is activated. I interlocked it with it's own output Q using normally-closed contact. That's why it will disconnect itself when the set time is reached. Disconnecting In will results to Q turning off, locking back the normally-closed contact, then the timer will restart.   EDIT : Maybe you can remove the first two posts, since we resolved the issues already, just to make things cleaner
  7. Big Tricky Omron Question part 2

    Hello Michael, yes, the Data Trace is indeed inside Sysmac. You can look on the left window somewhere near to Axis Settings. We can choose what to be recorded, then start recording the data. Once we stop it, the plot will be shown (yes, the plot cannot be updated in real-time). Being a newbie is always a start... give me something other than Omron and maybe I'll lose my mind :D. In fact by looking into your project I've got a new idea for our exhibition, making sine wave trajectory control. It's not something common in automation, but in terms of exhibition is always to show-off, so something out of the ordinary is always better :D Whenever possible I'll gladly assist
  8. From PM this morning

    The COMM indicator on the PLC should actually OFF before we're attempting any connection, eventhough the cable is plugged-in. The DIP Switch itself should be turned on, but in this case I think there is improper wire connection or pull-ups somewhere that caused the COMM Line to went High before it's time. I had similar issues when using Symbol's Barcode Reader before and still haven't found any solution to it aside from changing the Barcode Brand...
  9. Hi everyone, recently we got a complain about UM password protection in the CP1L. So our user intended to apply password to a CP1L PLC which doesn't have battery installed. They were testing to turning off the PLC for about a week. In the 8th day, they turned it on again and tried to upload the program from the PLC. But after they input the password, and error shows up which indicates whether the password is wrong, or already inputted wrong 5 times in a row. Further checking shows that A99.12 memory was turned on which indicates that wrong password has been inputted 5 times. This was not the actual case since we make sure no one was using the PLC in those 7 days. A99.12 by its nature is not a non-retain memory. Is it possible that during Power On, the memory is unstable that it turned On by itself? I know it can be the case on some areas like DM / WR and also the RTC memory. And since A99.12 is a Read-Only memory, we cannot use P_First_Cycle to ensure it's turned Off as what we used to do with A500.12 (Inhibit Output). Currently I'm testing it by myself, for 3 days had left the PLC Powered Off. If anyone had inputs about this please advice. Thank you
  10. Big Tricky Omron Question part 2

    Hello Michael, glad to see you've been testing it. I had seen flaws on the code that I sent to you last night... you know, brain cannot functions really well during when we're about to sleep This kind of project piques my interest better compared to machine automations actually. Of course many new things come out to the automation world, but this kind of proving theories is more fun to me. Well, maybe I can say that for now since I just finished my degree 3 years ago. I dunno whether I can say that in the next 5 years. Hahahah... Anyways, I had create another revision for the code. I don't have hardwares with me to actually test it, but the simulation result seems to be good enough as you can see on the following Data Trace result. Here I just put 3 Sine components to be seen, but actually there are already 10 components that makes the resulting Axis Position. I didn't show them all just to keep the tracing result look readable. You can look more into it in the program. I am using Amplitude and Period as the parameters. No phase shifts added so far, you can add it later on.   And just for further references on why the previous sample didn't worked : The MC_SyncMoveAbsolute only accept _mc_Aborting Buffer Mode. My previous one was using _mc_BlendingNext that's why it returns an error. A quack with Sysmac Studio is that it doesn't really limit what input are you giving to the FB as long as the data type matched, so unexpected misses like that can be expected if we're not really reading the manuals thoroughly. The FOR Loop was made from counter from 0 TO 10 to which the actual array index was 1 to 10. I forgot to set the FOR Loop limit from 1. Already fixed that in the current program The previous example was using a fixed 1 ms Timer to control time value. This was actually a mistake since I forgot that for different Periods, a Sine Wave will end on the time that is the same to its Period. The other that I forgot is also we're talking about Discrete Signal here, so the time parameter should be an increment of a certain Sampling Time. This was actually mentioned in your algorithm before. The calculation for Sine in the previous program is using DegToRad function. It was actually not necessary since 2*pi*t/T is already resulting into a radian and not degree. It was also what makes the CSine value looks weird before. I had removed it in the new program. In the new program we define first the Sampling Time, then increment the SineWave Time for each SineWave components. We need to have separate counters for that because we need to reset the time to 0 for each SineWave is reaching its Period, which should be different for each. I was using Omron newest servo, the 1S-series as my Axis in mind, that's why the encoder count is much more higher (about 8 Million). Fixed that in the new program to G5 encoder count (1048576) You still need to edit the Axis setting since mine is Virtual Axis in degree units. Also the Homing function is not yet there. It might also require another tweaks here and there. Since you're seems to quite OK with the Ladder, I changed my program to be based on Ladder also. Frankly speaking, to me the readability to human is much more easier compared to ST. Hope it helps SineControl_Rev2.csm2
  11. Sysmac Studio Improvement Request

    Apparently there is already a new Auto-Update for Sysmac Studio, to 1.17.21
  12. Move to NJ series worth it?

    Well... if we're using NS of NB HMI, basically we still can use two monitors because we'll still using two softwares :D For NA HMI is a bit tricky. I usually open two instance of Sysmac Studio, save a same project into two different files, then open both on each instance. The first one is to edit the NJ, the second one is to edit the NA. For changes that I had made to the NJ project, I save it and doing an Offline Comparison on the NA project, to which the NJ inside the NA project will be updated with the changes. Certainly it's not that flexible, but still a doable workaround
  13. Omron F-160 Vision System with Allen Bradley CompactLogix

    Hi Justin,   1. NS10 Displaying F160 input image You'll need to program the NS10, adding a Video Display object on a screen to be able to see the F-160 image. The image is transferred from F160 to the NS10 through the NS-CA002. This connection doesn't do anything aside from displaying the camera image. You cannot get any functional data from the camera such as inspection results.   2. NS10 Controlling or Monitoring the PLC Aside from displaying the F160 image, you can use the NS10 as a control panel for the PLC. You can make buttons, lamps, number inputs, etc onto the NS10 screens to control the value of PLC memory. To send the commands, NS10 need to connect to the PLC using it's PortA or PortB. In your case it is connected to PLC's SCU21 slot Port1 through the PortA. 3. PLC Control to NS10 The Serial RS232 connection between F160 and the PLC CPU's Serial Port can be used to trigger the vision system and receiving inspection result. Triggering is done by PLC, sending commands to the F160, to which afterwards the F160 will return a response including inspection result, though the F160 must be setup first in order to do so.   Hope that helps  
  14. Move to NJ series worth it?

    We call that "Marketing Strategy". What does a PLC do again, really, if not being a controller to automate machines? :D