Greetings! I am a member of an automation company specializing in connecting our Kuka robot to a lathe machine via a Profibus communication interface. The lathe machine features a Mitsubishi Q26UDH PLC integrated into a Mazak SmoothG CNC controller. While I am new to working with this PLC, I am eager to learn and apologize in advance for any beginner questions. The basic input and output signals are functioning properly, and Profibus-DP communication has been successfully established. Our customer has now requested the installation of a special feature for cutting around 800 different workpieces (bars). They need to send data containing decimal numbers, such as the length and diameter of the bars, through Profibus DP to specific registers for the NC to access after the robot controller sends the information. The customer requires access to 12 different registers, with each register containing 2 bytes/16 bits and following a numeric format ranging from 0001 to 9999. I have consulted the MELSEC-Q/L Programming Manual (Common Instruction) for guidance, but unfortunately, the EMOV instruction I initially attempted to use is not supported by this PLC. I have reached out to the Mazak factory in the UK, who informed me that only their latest Smooth Ai controller is capable of handling such data. As I am inexperienced with Mitsubishi PLCs, I am seeking advice from anyone who may have suggestions on how to proceed. Your help and insights are greatly appreciated. Thank you. - Gabor
Welcome to the forum! If you're looking to transfer data from one register to another in a Programmable Logic Controller (PLC), you can use the MOVE(_E) instruction. This will allow you to control when the data transfer takes place. Let me know if you need further clarification.
When working with floating point data in your programming, it's important to choose the right instruction. If you are working with integer values (16 or 32 bit), use MOV or MOV_E. However, if you are dealing with floating point numbers, you must use EMOV and ensure the data is in the correct format, such as 123.23. This instruction utilizes two 16-bit registers, like D100 and D101. If your data ranges from 1 to 9999, it is most likely a 16-bit integer. If the data includes decimal points (e.g. 1.0 to 9999.0), then you should use floats. To convert between floats and integers, utilize functions like INT_TO_REAL or REAL_TO_INT. Additionally, there is a function called FLT which specifically converts an integer to float.
Welcome to the forum sczot. To clarify, a customer needs to cut around 800 different workpieces (bars) with slight variations in dimensions. Instead of creating 800 unique machining programs, the idea is to define them using 10-12 parameters that the robot will send to the controller. These parameters consist of numerical data with a maximum of 4 characters. The goal is for the robot's controller to input a value, like "16387", into a register that can be accessed directly from the NC program. This approach simplifies the process and avoids the need for multiple programs. Thank you for your assistance!
Parky explained that EMOV is meant for floating point numbers, while MOV or MOV_E should be used for integers (16 or 32 bit). If you need to move float data, it must be done with EMOV and in floating point format, such as 123.23, utilizing two 16 bit registers like D100 + D101. If your values range from 1 to 9999, it is likely a 16 bit integer; otherwise, it should be in the format of 1.0 to 9999.0 for floats. To convert between floats and integers, the PLC requires the use of INT_TO_Real or REAL_TO_INT functions, although there is a function called FLT for converting integers to floats. Unfortunately, these commands are not supported by the lathe's PLC, which could be due to specific Mazak-Mitsubishi specifications.
Move instructions for Q/L CPUs are fundamental and essential in CNC programming. Both single-word (MOV) and double-word (DMOV) moves are enabled, with the option to use a one-shot move by adding a 'P' at the end of the instruction (MOVP). Therefore, executing [MOVP S D] will smoothly transfer the value of S to register D.
Hi Gabor, No need to apologize for newness! We all start somewhere. Initially, I'd recommend considering utilising some simple data scaling logic. Here's a potential workaround - you can break down your decimal numbers into two integers: the whole part and the fractional part, then transfer these values as two separate integers. Once they're in the Mazak controller, you can recombine them as a floating point number for processing. Also, you could possibly look into using the Float to Bin/Bin to Float conversion instructions. Notably, each PLC/CNC interface can be different, even within the same company. It seems, in your case, the best path would really depend on the specifications of your particular set up. Sometimes, a direct call to Mazak for technical support can prove really helpful. I hope this gives you a starting point, let us know how you progress. Cheers, Mike
Hi Gabor, welcome to a wonderful world of Mitsubishi PLCs, where every day is a new challenge! It sounds like your task falls into the realm of communication protocol translation. Since as you've found out, the EMOV function is unavailable, I suggest you try using the TO/FROM instruction set for the data transfer. It's ideal for managing communication between mismatched protocols. Use a separate buffer memory area for each value that you need to send through the Profibus. This way, each transferred value will have its own register area and won't mix with others. Also, make sure to factor in any possible delay in the data transfer while syncing the robot and the lathe machine. Hope that helps. Keep us posted on your progress!
✅ Work Order Management
✅ Asset Tracking
✅ Preventive Maintenance
✅ Inspection Report
We have received your information. We will share Schedule Demo details on your Mail Id.
Answer: Answer: To send decimal number data through Profibus DP to specific registers in a Mitsubishi Q26UDH PLC, you can utilize the appropriate data conversion techniques or instructions supported by the PLC, as the EMOV instruction may not be compatible. Consult the PLC's documentation or seek advice from experienced users for alternative methods.
Answer: Answer: In a Mitsubishi Q26UDH PLC, you can access 12 different registers, each containing 2 bytes/16 bits and following a numeric format ranging from 0001 to 9999. These registers can be used to store and retrieve data efficiently for various automation tasks.
Answer: Answer: If the EMOV instruction is not supported by the Mitsubishi Q26UDH PLC for data transfer, consider exploring alternative instructions or methods provided in the PLC's programming manual. You may also consult forums, user groups, or Mitsubishi support for guidance on how to achieve the desired data transfer functionality.
Join hundreds of satisfied customers who have transformed their maintenance processes.
Sign up today and start optimizing your workflow.