MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

30 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

2386 profile views
  1. Program for CJ1G controlling servo motor

    I'm not sure about the terminal block you're using though. It is never listed for R7D-AP model AFAIK. Seeing the example that you've followed, you're doing an Absolute Movement. Did you execute a Homing operation before that? Because you can only do Absolute Movement if servo's home / zero position is defined. There is another separate section in the manual containing example about Homing. I'd suggest you to try the Relative Movement first (Change the 2000.03 bit to the Relative Movement one). You don't need Homing for Relative movement, just be careful since the calculation is different (Absolute = target position, Relative = increment position). If the servo managed to move using Relative movement, then you can be sure that wiring is correct. So you can continue to check about the Homing operation before trying Absolute Movement.
  2. CX-Drive has definition for that servo (It's and old model also). That model was supposedly only to be sold in China region, so you need to adjust your CX-Drive to look on China region database. Go to menu Tools-->Option-->Drive Regional Defaults : Change to China, and you should be good to go.
  3. ST Language

    No... but you can emulate it using internal memory. CMIIW IF Input = TRUE THEN      IF EdgeDetect = FALSE THEN           'Do "Something", anything you want do be done with the program           EdgeDetect := TRUE;     'This will ensure the "Something" will be called only once      END_IF; ELSE      EdgeDetect := FALSE;     'This will resets the edge detection END_IF;
  4. SCU42 - Communication Cable Type

    I typically use a pair of AWG18 cable especially for long distance communication (more than 150 meters). For short distance, a STP cable will suffice. It came already in a twisted-pair, so signal crosstalk issue already reduced.
  5. OPC & PLC Integration

    No... And in most cases it's very hard to interface old PLC to OPC UA. You will need to implement some hardware-in-the-middle to do it, which is sometimes another PLC also. Depending on the machine, sometimes it is easier and more cost effective by replacing the existing PLC with a newer generation which is connectable with OPC UA.
  6. C200HW-MC402-E help

    Unit number duplication means you have another card (which maybe different than MC402) that uses same Unit Number as your MC402. In this case check whether other card is set to Unit No 0 as well. Sometimes a card may take 2 unit no. space. I don't remember how much MC402 takes, but maybe it uses 2, so you cannot have other cards set to Unit No 0 and 1. Check your IO Table in CX-Programmer first to confirm the unit addressing. If everything okay then you can move on to Motion Perfect
  7. UART (TTL)

    The problem is RS485 signals are typically containing some sort of ID which will tell the slave device who is the target of the current communication. IIRC your MX-106T does not have any settable identifier, so you cannot use conversion from RS-485 protocol to UART. If you want to save number of RS232 port, then you should go with PanicMode's suggestion. Have the PLC talk to the Microcontroller via RS232-to-UART interface, then emulate some digital I/O pins for each motors TX/RX UART signals. Timing should not be critical if you send the data cyclically for every motors. This of course will take more work rather than buying two units of SCU21-V1 to get 4 RS232 ports.
  8. Need Help for Cx-Supervisor Push Button Action

    Use both MouseDown and MouseUp action. On MouseDown, set the Point value to True. On MouseUp, set the Point value to False.
  9. UART (TTL)

    The MAX485 mentioned in the manual is for MX-106R series which indeed supports RS485 (has 4 pin connectors). In your case with MX-106T, the Motor side uses UART, so the easiest way to get it converted on the PLC side is by using MAX232 chip instead. It will convert the UART protocol into RS232. There are plenty of circuit example available online for that chip. Regarding the single pin for both TX and RX on the motor, you can solve the issue pretty easiliy by using a Schottky Diode. Get one with a low forward-bias voltage (0.3 V or less), and use it in a configuration like in the picture below. The diode will ensure that signal goes one way from the MAX232 TX Output into the motors DATA input. When a DATA is sent from the motor, it will only enter the RX Input of the MAX232 since the diode is blocking the TX side.
  10. Half Screen when app is opened.

    Use the GMAN trick. It helps
  11. Socket UDP Send not working

    Good to know that it solved the issue :)
  12. Socket UDP Send not working

    I think I'm starting to get what's happening... but you need to try it. Delete all of the Initial Values set for your Socket variable. In the SktUDPCreate documentation it describes that both SrcAdr and DstAdr sections will be filled with zero once the socket is created. As UDP is an unconnected communication, you don't need to specify any source IP Address. If the UDPCreate is successful, fill the DstAdr with your target device IPAddress and PortNumber, then try the UDPSend command. The Handle value is basically just a pointer. If you Create a socket one time in the entire program, it will be filled with 1. If you create another socket, it will have 2 as the handle value. If say socket 1 is closed properly, next time you open a socket it will get 1 as the handle value. So it's predetermined by the CPU.
  13. Store Recipes on my NJ SD Card

    To save / import in / from SDCard, just use "\SDCard\RecipeName.csv" as the FileName To save / import in / from in USB,  just use "\USB\RecipeName.csv" as the FileName
  14. Socket UDP Send not working

    Port Number does not matter AFAIK, as long as it's not the common port number used in other TCP/UDP protocol (like port 80) or not being used by another Socket. I see in your variable tables that you are Initializing some values, such as the Socket definition. I think, prevent to Initialize the "Handle" value of the Socket. When you are Creating a Socket by the Create FB, you will get a new value assign to that Handle, just as a pointer. This is later on Outputted by the Create FB. Try checking the current value of the Handle in your Socket. It will not be able to send anything if the value is 0.
  15. You cannot put the internal memory location (like %W0.00) in the ladder directly. You need to create an Internal Variable in the program and put the %W0.00 inside the AT column of that variable in the variable table. If your PLC Type is the NX1P2 series, you may need to edit the Memory Settings in order for % symbol to be applicable in the AT column.