MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

32 Excellent


About innoaloe

  • Rank
    Former Omron Engineer
  • Birthday 03/24/91

Contact Methods

  • Website URL,,
  • Skype

Profile Information

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

Recent Profile Visitors

2529 profile views
  1. Custom Keypads

    Custom Keypad usage might one of the worst documented feature in NA. Assuming you know about Custom Keypad already, let's say you have a DateTimeKeypad under Group0 and named DateTimeKeypad0 Then I'd suggest you not to use DataEdit, but instead use the DateTime Standard Control. I don't see the point of using DataEdit when the said control cannot even view Date or Time variables properly. Now that you have your DateTime control in the Page, assign your Date or Time variable to it as you needed. Lets say the variable name is "MyDate" Next, add a Press Event to your DateTime control, and assing a CallSubRoutine Action to it. For example we call the subroutine "CallMyKeypad" Then you create the CallMyKeypad subroutine inside your page, or Global Subroutine if that's necessary. The subroutine should look like something like below. The green parts are just script comment and not necessary. Sub CallMyKeypad()       'You'll see a lot of commas here. Basically some parameter on the EditVariable function are not necessary to open the said keypad       'Important parts are the said Date/Time variable name (MyDate), the Type of the Keypad (DATETIMEKEYPAD)       'and the Name of the Custom Keypad Group that you want to use (Group0)       'We do not specify the keypad name explicitly, since one Custom Keypad group can only contain one definition of a Keypad Type       EditVariable("MyDate", , , , , , , "DATETIMEKEYPAD", , "Group0") End Sub You can find more about the EditVariable script in the Instruction Manual from the Help menu when your Sysmac is opening an NA Project.
  2. CP1L EM as Modbus tcp client.

    CP1L-EM or EL can communicate to 3 TCP servers at max simultaneously. In practice, should you need to communicate to more servers, you can Open-Close the TCP connection, changing target IP each time.
  3. hydraulic cylinder speed function

    Then you need to measure the rate of change of the said encoder reading. Put a constant timer which run every 100 ms for example. Or better, create a secondary Periodic Task that run for every 100 ms just to read this analog value periodically (from the Task Settings menu) On each cycle, read the analog value of the said encoder. Subtract with its previous reading. Divide the remainder with 100 ms. The result might get jumpy though. You can reduce the jumps by doing an moving-average of subsequent subtraction results (you can find that algorithm in the internet easily) Now for the question whether the result displayed stands correct, that'll depends. Your encoder rated on 0 - 10 V, but for what distance? Let's say 0 - 10 V equals 0 - 1000 mm, which means you'll have a precision of 1000 mm / 10 V = 100 mm/V If your analog input card rate at 4000 for its resolution, the smallest voltage you can measure is 10 V /4000 = 2.5 mV So that means the smallest unit of distance you can measure is (100 mm / V) x (2.5 mV) = 0.25 mm Divide that by 100 ms sampling time, then the smallest change of speed that you can measure is (0.25 mm) / (100 ms) = 2.5 mm/s That's the concept I can offer. Happy coding
  4. Exactly. One NB-Designer project can only have one HMI definition. If you want to have another screen, copy the entire project folder of your current project and rename it. Open the new NBP project file and change the communication settings to suit your needs (e.g. the IP Address of the second NB project should be different from the first project). There is no other workaround aside from having multiple NB project at the moment.
  5. Variable size array

    On it's very core, NJ is still a PLC, so unfortunately such dynamic memory management function is not implemented. IMO if you just have 3 Cam tables, it is way easier to create 3 MC_CamIn instructions and one MC_CamOut. Ensuring the Cam transition is easier by having multiple FBs. In the end if you want to only have one FB, you need to make each Cam Table to be in the same master-slave scale, so the array size of those 3 will be the same.
  6. It's not possible AFAIK. Library is the only way to go. The current version also supports GIT already, but it's not a cheap solution :D
  7. NX_SerialSend

    Yes, but the same requirement about minimum CPU firmware version applies.
  8. CX-Simulator

    This might be old... but I'm trying to do as what @Nibroc said. However when I'm pressing the "Connect" button to activate EtnUnit for example, the Network Address text stays at 0 and it is grayed out. So no chance to change it. This in turn (I think) makes me unable to find the said Simulator through FinsGateway, since FinsGateway can only find devices with Network Number from 1 and above. Anyone have an idea about this?
  9. NX_SerialSend

    Before you update anything, try checking the firmware version of your NJ / NX CPU. Some function blocks only work for firmware version 1.10 or above, so even though you have Sysmac 1.15, it won't be shown since the CPU firmware version does not support it. You can try upgrading the firmware of the CPU, although "legally", only Omron engineer can do that for you... EDIT : As mentioned before, you need CPU Firmware v1.11 or higher to use this instruction. This image taken from the Software User Manual
  10. Batteries will still be needed if you want the PLC clock to keep on synchronized though... otherwise when main power is powered off, the clock data in the A Register can go awry... @Abdul Wajid Yep, leaving by this year from the main company but still got to play with Omron here and there. Who knows though, maybe back in there in a few years. Hhh...
  11. @Abdul Wajid Hi again! Got the business moving now? You've got the answer from the boss up above. If I may add though, you can also use MOVD instruction to take hour digits from A352, put it in MSBs of D1000 for example, then use another MOVD to take minute digits from A351, put it in LSB of D1000. So D1000 will contain "HHMM" values which later you can compare with another Word.
  12. All Array index accessor in the NA usese parentheses since it's based on Visual Basic script. I really hope they used C# for a better script consistency with PLCs ST Language, but I guess VB is easier for most users :(
  13. eMB-60R Not Detected

    If so, the problem might lie with the Subnet Mask. Sometimes I find an eMB-60 using subnet mask of eventhough the IP started with Try changing your PC subnet mask to instead. Cannot guarantee anything though...
  14. eMB-60R Not Detected

    Well, ping command is just sending ICMP packets so no TCP Connection is generated. That's why it will always work as long as the IP is there. Have you tried using another computer to test the connection?   Try the IP Setup in ACE. There's should be a Magnifying Glass icon near the Connect To Controller option which will shows all connected controllers as long as the cable is connected. From there you can modify the controller IP and Subnet Mask too.
  15. eMB-60R Not Detected

    Since you're having Sysmac I believe you're familiar with a tool called DirectEthernetUtility which comes with Sysmac installation. If not you can find the said program in C:\Program Files (x86)\OMRON\Communications Middleware\DirectEthernetUtility.exe This is a very handy tool from Omron which lets you connect to any Omron PLC through Ethernet without knowing it's IP Address (if connected directly with cable). However it causes a royal pain if you're trying to connect to other ethernet devices through your LAN Card (such as Adept robots) because this application generates a secondary Local IP Address starting with All other applications using Ethernet might be affected as well. Two suggestion from me: 1. Keep the DirectEthernetUtility as it is right now, and change Adept Robot IP Address to match the current IP and Subnet Mask using C:\Program Files (x86)\OMRON\Sysmac Studio\AdeptRobotIPAddressSettingTool, or better you can change it from ACE (yes, you can change it even without having a correct IP Subnet in your PC). 2. Open the DirectEthernetUtility, disable it, then set your PC LAN IP and Subnet to match Adept's current