By default, I believe the download option for symbols is selected, which may not leave enough space to store both the code and symbolic information. It is important to note that firmware version C onwards for real FX's allocates extra space for compiler-generated symbolic addresses in the higher range, not supported on older processors or likely on clones. Recently, there was a post about compilation and downloading causing issues with internal output bits not turning on. The solution to this problem is to utilize absolute addresses with symbols instead of solely symbolic addressing. Clones may also encounter difficulties when creating function blocks, as they use symbolic address space for data passing to calling function blocks. While you can adjust the device automatic assignment to a lower range, it has not been tested on a clone before. Additionally, if you have a relay output board, the function (PLSY) designed for high-speed pulse trains to a transistor output board may not function properly.
The PLC is priced at £8, but it lacks a comprehensive instruction set. This is a complete ripoff.
- 21-02-2025
- Ronnie Sullivan
I recently purchased one of these devices out of curiosity and have been quite impressed with its performance. It reminds me of the FX2N model, but with some limitations such as the inability to change PLC parameters or baud rate. The analog functions are reminiscent of older models, requiring the use of the RD3A function instead of TO/FROM functions. Despite these limitations, the device is capable of performing various functions, including float maths. One drawback when using GXWorks2 is the restriction to symbolic-only variables, which may be located outside the actual variable address space. However, by utilizing global symbolic variables within the actual address space, this issue can be mitigated.
Parky remarked that the PLC clones are surprisingly good considering their price. As a newcomer to the world of PLC clones, I initially believed they were only for microcontroller boards. However, I soon realized that clones exist for almost everything, offering a more affordable alternative. Despite not having the same processor as the original FX3U, the clone I purchased allows me to program it using GX Works2, the official IDE from MITSUBISHI. This gives me a similar experience to using and programming the original FX3U at a lower cost. While the clone may resemble an FX2N, it does have limitations such as the inability to change certain PLC parameters or the baud rate.
I also observed that the clone operates at 38.4kbps, which is sufficient for my needs. However, I encountered difficulties with the analog functions, which require the use of the RD3A function instead of the TO/FROM functions. Despite this limitation, the clone can perform various functions, including float mathematics.
In using GX Works2, one issue I encountered was the symbolic only variables. It appears that these variables may be located outside the actual variable address space of the clone. However, by using global symbolic variables in conjunction with the actual address space, I was able to work around this limitation effectively.
If you have any examples or further clarification on the use of "TO/FROM" parameters and symbolic variables in GX Works2, please provide them for better understanding.
In a genuine FX system, the PLC Parameter file is located at the top of the Project navigation list. This file allows you to configure important settings such as the PLC Memory size and which devices retain their data when power is cut. While many clones may allow you to adjust these settings within your project, they often lack the capability to transfer them to the PLC.
The RAMP function in the FX system smoothly increases a value within a word. To transfer this ramped value to an analog output, you can use the WR3A instruction. For instance, entering RAMP[S1,S2,D,10] would send the ramp value to the designated register "D100" and then utilize the WR3A function WR3A[0,0,D100] to move the value to the built-in analog output.
To follow newer IEC coding standards, it is recommended to use symbolic names like "My_Variable" instead of absolute addresses like M20 or D45. When you compile the program, the system automatically assigns a physical register or bit to the symbolic name. However, be aware that certain clones may not have access to all addresses, such as M9000 or D9000, which are typically found in later versions of authentic FX units.
When connecting an HMI to the PLC, keep in mind that the HMI can only communicate with registers in the range of M0-M999 or D0-D511. In contrast to actual addresses, symbolic addresses do not have predefined locations, making them inaccessible to the HMI for reading or writing.
In order to maintain backward compatibility, Mitsubishi has included a symbol table in newer FX units. This table allows HMIs to interact with symbolic addresses, ensuring seamless communication between devices. The provided image illustrates how the first variable has a defined address while the second variable relies on automatic assignment, likely falling within the extended variable range not supported by clones.
I have identified the company responsible for creating these clones. After researching, I learned that the model is referred to as LE3U, which is equivalent to FX3U. The only available document can be accessed here: https://www.xueplc.com/wp-content/uploads/2021/01/LE3U-Manual.pdf However, it lacks detailed instructions, leaving me feeling lost as I am unfamiliar with ladder programming, which resembles assembly language.
To begin developing a successful project, I am considering a design similar to previous projects showcased for demonstration. This project will involve selecting specific inputs and outputs using an HMI interface. This project should serve as an excellent opportunity for a diploma degree project.
What steps should I take to get started on this project effectively?
@eag1 The photo is concerning to me. I can't help but think about needing replacement parts in the future, having to show certificates during inspections, and protecting intellectual property. The upfront cost of PLC equipment in industrial settings is typically just a small part of the overall expenses. In my view, cutting corners on quality is not advisable.
Seeking clarity, are you suggesting that this project will be costly or that it cannot be executed on a limited budget? Just to clarify, I work in an academic setting overseeing diploma projects, not in an industrial capacity. Our projects are designed for educational purposes and graduation requirements, rather than real-time operational systems.
While FX3U may be suitable for learning purposes, it's important to note that its capabilities are outdated as it is a PLC that dates back over two decades. In terms of a graduation project, it's puzzling that universities permit the use of clones when Mitsubishi offers to donate their equipment. It would be a preferable option to utilize authentic equipment. Universities should focus on teaching engineers critical thinking skills, prioritizing safety, and respecting intellectual property rights. Additionally, GxWorks provides an exceptional simulator that eliminates the need for physical equipment during the learning process.
Goghie pointed out that while using an FX3U PLC for learning purposes may be acceptable, it's important to recognize that the original FX3U functionality is now considered outdated. The FX3U model has been around for over two decades and may not offer the latest capabilities.
Despite its age, the FX3U PLC still represents a milestone for those, like Goghie, who are new to ladder programming. The goal is to complete the project by programming the necessary functions and achieving the desired results, with the addition of an HMI interface marking a significant milestone in the project's development. Utilizing a clone PLC should suffice for this particular project.
When it comes to graduation projects, there may be a concern about using clone equipment instead of official Mitsubishi PLCs. While some universities receive donations from Mitsubishi, as an educational institution affiliated with a corporation that oversees numerous technical colleges in Saudi Arabia, reaching out to Mitsubishi to request PLCs for project labs could be a viable option.
In the field of engineering education, universities should not only teach technical skills but also emphasize the importance of safety and respecting intellectual property rights. Despite assurances that using cloned equipment is safe since PLCs are controllers, it is essential to consider potential issues that may arise.
Although GxWorks offers a reliable simulator for learning purposes, hands-on projects courses may require the use of physical hardware, kits, wiring, soldering, and more. This practical application goes beyond theory classes and provides valuable real-world experience for students.
I have created a ladder code and would like to share it by posting it here. How can I extract the code from GX Works 2?
One effective method is to convert the document into a PDF file before sharing it. Prior to printing, it is advisable to review the print preview and deselect any unwanted elements. In the print setup menu, choose the option to print to PDF. To upload the file, scroll to the bottom of the page, attach the PDF, and you're done. This easy process ensures a professional and easily shareable document.
Thank you, Parky, for your assistance. I recently created my first inefficient ladder example, which surprisingly worked. However, I later discovered a more advanced blink example in the official FX3U programming manual. This has sparked my interest in learning more about ladder programming, which involves a sequential process leading up to an END statement. Every program must also include a continuous looping system. What is the standard loop design in ladder programming? Is it a jump statement or something else entirely? Let's delve deeper into this topic.
When using a PLC, the program starts at rung 0 and continues through to the end before looping back. The PLC handles the process independently before scanning the main program. This includes tasks such as scanning real inputs, transferring them to the input image, running the written program, and updating real outputs from the internal image. Some modern PLCs now offer the capability to immediately update the I/O without waiting for the start of the scan. Additionally, you can create subroutines in your program that can be called, executed, and then return to the main program. It is important to be cautious when looping back to a logic rung multiple times, as exceeding the scan time may trigger the PLC's watchdog timer and put it into stop mode. Other processes, such as timed interrupts for high-speed processing and special I/O cards, may also occur concurrently with your code. For further information, consider researching online and watching educational PLC videos.
Parky explains that PLCs start running from rung 0 to the end and then loop back. The PLC system automatically handles tasks such as scanning real inputs, transferring them to the input image, running the programmed code, updating real outputs, and performing other functions like communications.
It seems that PLCs operate differently from embedded systems as they run on a specific operating system. Even without explicit code, every PLC program runs on an OS. The modern PLCs now feature the ability to immediately update the I/O without waiting for the start of the scan.
The difference between the new I/O updating ability and the standard system scan is in when the inputs/outputs are processed. There is also the option to create subroutines in the program to jump to specific sections and then return to the main program.
In terms of processor cores, PLCs can be single-core or multi-core. Single-core processors will pause the main program to run interrupt subroutines, while multi-core processors allow the system to continue running with another core handling the interrupt.
It is important to be cautious when looping back in the main program, as exceeding the scan time can trigger the PLC's watchdog timer to stop and turn off outputs. This time sensitivity is crucial for safety reasons, especially in industrial settings.
Besides the main program, there are other processes running in the background such as timed interrupts for high-speed processing, input interrupts, and specialized processing for certain I/O cards. Watching online PLC videos can provide further insight into these processes.
I am eager to delve into the data structures used in ladder programming. In this context, the X prefix denotes inputs, while Y signifies outputs. M refers to internal data registers, and C to counters. For example, M8200 is labeled as a switching relay. But what exactly is a switching relay, and are there other data structures to explore? Let's uncover more about these key components in ladder programming.
To access valuable information on the Mitsubishi FX PLC, visit the official Mitsubishi website and download the available PDFs. These documents contain details on the internal data structure, including M bits, D registers, timers (T), and counters (C). While D registers and M bits from 8000 onwards are typically standard and not user-specific, they serve important functions within the PLC system. For instance, M8013 functions as a one second clock that can be used as a contact in your program, but not as an output coil.
Many PLCs, including Mitsubishi, operate using a dedicated operating system that handles all necessary tasks. The PLC interpreter converts ladder logic code into hex codes, making it easier to understand and execute. In Siemens PLCs, the upper byte indicates the instruction type while the lower byte signifies the address of the contact. This process eliminates the need for traditional compiling, as the ladder logic is stored and interpreted directly by the PLC.
While some PLC manufacturers keep their code proprietary, it is important to note that interrupts and I/O updating processes vary among different PLC models. Most PLCs update I/O at the end of each program scan, but some offer instructions for updating at specific points within the scan. Rockwell PLCs, for example, may update inputs and outputs asynchronously based on the logic of the program.
Parky recommended visiting the Mitsubishi website to download various PDFs related to the FX series, providing valuable information on internal data structures such as M for bits, D for registers, T for timers, and C for counters. While exploring the hardware specs, I came across a 900-page document on programming, which included useful examples in the "Introduction of Devices Constructing PLC" section. This section clarified the structures involved.
Furthermore, the system hardware description shed light on a past troubleshooting issue with a clone PLC, which may lack a crucial component known as a "memory-cassette." The picture depicted the contents of a "memory-cassette" that the clone PLC may be missing. For instance, M8013 functions as a one-second clock, serving as a contact in programs but not as an output coil.
In my quest to comprehend other system devices, I have identified inputs as x, outputs as y, timers as t, counters as c, literal values as k, data registers holding logic values as m, and data registers holding number values as d. Additionally, I recently discovered that h represents hexadecimal values, and e signifies floating values. While Index registers (V)(Z) and Pointers (P)(I) are also present, I plan to delve into them at a later time to fully grasp their functionalities.
The FX3U PLC now comes standard with 16K of RAM, providing ample programming space compared to the typical 8K found in clones. The "Z" index register serves as a useful pointer, allowing for indirect addressing of bits or registers. By incrementing the "Z" register in a loop, you can easily access different memory locations. The PLC may have multiple Z registers (Z0-xx), with Z0 being the default. Using pointers, such as D30Z0, can help navigate to specific memory locations for efficient programming. Pointers are also handy for jumping to subroutines located after the FEND instruction. Remember to set up your programming sequence properly before reaching the END instruction.
Inquiring about the necessity of a memory cassette is a common question among FX3U PLC users. The standard FX3U model now includes 16K of RAM, which provides ample programming capability. However, some clones may have limited memory capacity, possibly only offering 8K. When dealing with a clone PLC, it's important to adjust the PLC parameter settings to accommodate the lower memory capacity.
One key feature to note is the use of index registers, such as the "Z" index register, in PLC programming. This index register functions as a pointer, allowing indirect addressing of bits or registers. By incrementing the Z register within a loop, the next memory address can be accessed sequentially, maintaining organization within the program.
For those new to ladder programming language, tackling basic programming tasks like input, output, counters, timers, and set/reset functions is a common starting point. However, challenges may arise when working with analog input/output configuration, necessitating further exploration and discussion. Understanding the concept of pointers, which provide access to data in different locations, is crucial for more advanced programming tasks in ladder logic.
The memory cassette serves as additional memory where you can choose to store programs either internally or on the cassette. There is also the option to create file registers, known as "R" registers, in either internal memory or on a cassette. It is important to note that not all clones support the use of cassettes. In most cases, clones do not allow for the customization of PLC parameters, such as memory size, as they are typically fixed. Index registers in programming are similar to C programming, with different methods depending on the programming style used. For instance, in pure ladder programming with GXDeveloper or GXWorks in LAD mode, Z registers are used directly. However, in structured FBD/LAD mode with GXWorks, a pointer can be created and assigned a real address for use in the program. Refer to the attached code for a visual representation.
I am considering purchasing a budget-friendly PLC Controller Industrial Control Board from China, specifically the FX3U-48MR-407 model, for educational purposes. Can anyone confirm if these are suitable for my needs? I plan to use it for handling a few analog pressure transmitters to regulate water pressure and control VFD's to increase booster pump speed (simulating systems in multi-story commercial buildings). Additionally, I am curious if the Mitsubishi programming software is available for free to program these devices. What are the potential limitations or drawbacks of these inexpensive knockoffs?
JoeM61 asked about the suitability of a cost-effective Chinese knock-off PLC controller industrial control board, specifically the FX3U-48MR-407, for educational purposes. He plans to use it to regulate water pressure with analog pressure transmitters and control VFDs for booster pumps in commercial buildings. He also inquired about the availability of free Mitsubishi programming software. The software is indeed free. However, these knock-offs have limitations such as a shutdown protection circuit in case of a short circuit, and lack support for certain instructions.
The Mitsubishi programming software is not available for free. Unlock this essential tool at a competitive price for seamless programming and optimization of Mitsubishi products.
Wondering why gx works 2 is not free? I was able to download and use it without a license.
Are you able to provide me with a download link? Thank you.
A user mentioned that they successfully downloaded GX Works 2 without a license for free. However, it is important to note that while the download is free from the Mitsubishi site, it is only a trial version. Seeking out serial keys on the internet or using clones to bypass licensing requirements constitutes piracy and supports intellectual theft. It is crucial to respect copyright laws and properly license software to avoid legal issues.
Inquiring about a download link? JoeM61 asked for one, and here it is: Mitsubishi Electric Factory Automation Thailand's official download link. No license required on my end.
Goghie mentioned that downloading the software for free from the Mitsubishi website is only a trial version. While some may try to find serial keys on the internet, this constitutes as piracy. Additionally, utilizing clones not only supports intellectual theft but also raises ethical concerns.
The clones can be found for sale on popular e-commerce platforms like Aliexpress, a global shopping website. If Mitsubishi deems the use of clones as piracy, they should take legal action against the manufacturers. Alternatively, Mitsubishi could pursue legal action against Aliexpress for facilitating the sale of these unauthorized clones.
There is a free trial download available on the Mitsubishi website for PLC programming software. Looking for serial keys on the internet may be considered piracy and supporting intellectual theft. Do you happen to know of a free PLC programming IDE available?
eagl1 agreed, saying, "You're correct." In search of a free PLC programming IDE? You can utilize the OpenPLC IDE and runtime code with FX clone PLCs. However, a crucial point to note is that this process requires overwriting the PLC's original firmware, rendering a return to GX Works impossible.
According to mikeromeo, the FX clone PLCs are compatible with the OpenPLC IDE and runtime code. However, it is important to note that using this setup involves overriding the original firmware of the PLC, which means reverting back to GX Works is not possible.
I appreciate the clarification provided, as I will need to switch from GX Works due to having an unauthorized version on the college laboratory PC. This goes against the college's software policy. What programming languages does OpenPLC support? Additionally, I wanted to inquire about programming the Coolmay HMI. Are there any alternative free software options available for this task?
After conducting research, I discovered that TPWorks is a free software, while GX Works is a paid software. Therefore, I have decided to move forward with OpenPLC for my project.
I recently installed OpenPLC but have not started any projects yet. At first look, it seems that OpenPLC supports a wider range of programming languages compared to gx works 2. Thank you for the information.
GXworks2 no longer supports IL programming, similar to Siemens' STL. If you're using the older GXDeveloper, you can still program in IL, but it may not be worthwhile. Additionally, Openplc might not have dedicated functions for analog channels, limiting your options. It's unclear how Openplc interacts with real I/O, where FX I/O is labeled as X for inputs and Y for outputs. The code sent to the PLC is ultimately translated into IL, as Mitsi's operating system works as an interpreter. Openplc likely creates a runtime EXE and OS to run the program, possibly explaining why reverting back is not feasible. This setup may not allow for online editing or quick compilation, but it does offer simulation capabilities for learning purposes. However, it may not provide a true understanding of FX PLC functioning in real-world scenarios, focusing more on general PLC programming skills.
After testing OpenPlc, I found that while it is functional, the long compilation times and lack of thorough documentation make it impractical for my needs. Ultimately, using OpenPlc would significantly slow down my coding process compared to using the original IDE.
parky shared his experience with OpenPLC, noting that while it is functional, the compiling process is time-consuming and lacks comprehensive documentation. Despite its functionality, parky believes it would take twice as long to write code compared to using the original IDE. Although OpenPLC is basic in comparison to GX Works, it does support all IEC 61131 languages. Originally designed for PCs, support for microcontrollers such as Arduinos and STM32 was later added. The main difference lies in OpenPLC compiling a standalone binary that includes all runtime code for programming onto the microcontroller, as opposed to just an instruction list interpreted by existing runtime code.
According to mikeromeo, OpenPLC may be simpler compared to GX Works, but it does cover all the IEC 61131 languages. On the other hand, GxWorks2 offers support for LD, FB, IL, ST, and SFC programming languages, though SFC capabilities may vary depending on the PLC model being used.
Apologies for the confusion, but it seems that IL support is limited to Structured programs on the FX3U PLC. It may not fully support additional intelligent cards unless external libraries have been developed and are not included in the official download package.
Parky expressed skepticism about whether OpenPLC has specific features for analog channels and how they interface with real I/O. This information can be found on a page detailing support for multiple microcontrollers, such as the FX3U with an STM32F103 chip. Based on this, it is believed that OpenPLC should be compatible with the STM32F103CB (Blue pill).
Parky mentioned that they gave OpenPlc a try, however, they found that the compilation process was time-consuming, and the documentation was lacking. Despite the functionality of OpenPlc, Parky believes that it would take them twice as long to write a section of code compared to using the original IDE. Despite these drawbacks, Parky feels compelled to continue using OpenPlc due to its free nature.
While it may be worth attempting, if the cloned software ends up damaging your programmable logic controller (PLC), the cost of these clones may not be a major concern. Once downloaded, there is no going back. To learn more about this topic, I recommend checking out some posts on the openplc forum. One topic of interest is the FX3U Clone and alternative software (firmware). A common question is whether it is possible to revert back to the original firmware after flashing the PLC with alternative firmware. Additionally, inquiries have been made about downloading a PLC program from Beremiz and whether it can be uploaded in the future, similar to Tia Portal for Siemens. Feel free to visit the openplc discussion community for more information on these topics.
Indeed, you are correct that it is worthwhile to give it a try, as it will likely work in the end. This article delves into the process of repurposing a PLC Clone to work with Arduino. The author of the blog post detailed the steps involved, such as initiating the bootloader and confirming communication with the microcontroller using STM32CubeProg. Despite the chip being in read protect mode and the firmware unable to be backed up, all FLASH memory was erased to proceed with the reprogramming.
When flashing this board with new content, adjusting BOOT0 will allow for programming using either Arduino IDE or OpenPLC. These IDEs are the recommended paths for programming the board. Opting for Arduino C/C++ programming would be my preferred choice, though I am also interested in showcasing the project using OpenPLC.
Upon reviewing the forum, it appears that there is limited support for analog functions and other features unless code has been shared by users. It may be more beneficial to consider purchasing an Arduino instead. Despite the board allegedly supporting only 14 I/O points, the system should still function even if there are more or fewer points, as non-existent I/O can still be programmed and utilized as internal bits. This flexibility allows for seamless integration and operation of the system.
In this discussion, the user pointed out the support for Analog input and output samples in a particular model. However, there was no mention of support for output analog function, and I couldn't find a tutorial on this feature on YouTube. Despite this, I am confident that I can make it work with OpenPLC, or I can use Arduino C/C++ instead of ladder programming. Currently on vacation without access to the PLC, but once I return, I will start experimenting with OpenPLC. If needed, I can reprogram it using Arduino IDE. While it only supports 14 I/O points, additional I/O can still be programmed and utilized as internal bits. It's worth noting that if a model with more I/O is used, future contributions to the open-source platform may address this enhancement.
Discovered valuable information on Pulse Width Modulation (PWM):
If you have a board with relay output, PWM may not be suitable as the relays are not fast enough to handle it. For PWM to work effectively, a transistor output is needed. In the FX firmware, the PWM instruction is only compatible with units that have transistor output. However, with a firmware change, PWM could be used on an internal bit, although this may not be very practical. The PWM feature on an FX, referred to as PLSY, includes 3 variables: number of pulses, frequency, and the output coil. It must be an actual output for proper functionality. Additionally, there is the PLSR (possibly) which is specifically designed for motion control with dedicated cards.
Given that this board comes equipped with relays, I have no interest in utilizing PWM. I recently purchased a Vdc to PWM converter board specifically designed for the DA0 and DA1 pins on the FX3U, which offer a resolution of 0-10V. This allows me to make use of these pins. I am hopeful that OpenPLC supports DAC functionality, but if not, my backup plan is to implement it using the Arduino IDE. I have tested and confirmed the functionality of the converter board on the left. In the event that the load does not accept a PWM signal, I will need to find a suitable transistor driver circuit. Alternatively, I can create my own circuit using components from the warehouse stock. I am pleased to have successfully transitioned from gx works2 to a new platform.
When shopping for PWM amplifiers, be cautious as some may not meet the stated power requirements. Reviews on Amazon reveal that many do not deliver the expected power output, with some customers receiving units lacking pins or connectors. However, I have successfully created my own amplifier using a chip that offers reverse capabilities with minimal components, specifically the IC and power FET stages. This simple setup allows for easy direction swapping.
I find this concept intriguing, could you please share the schematic or draft of the circuit idea with me? This visualization will enable me to better understand and potentially implement the idea.
I no longer have the schematic as it was saved on my work computer that I could no longer access after the company went bankrupt. I recall that it utilized the TC4469 IC. I came across a similar circuit that also uses the TC4469 IC. If you are looking for more information on the TC4469 IC, you can search for it on Bing for detailed and accurate results. Bing's intelligent search feature makes it simple to find exactly what you need.
Indeed, the h-bridge circuit is essential for controlling DC motors. There are numerous DC motor drivers available, with some utilizing the popular H-bridge driver IC such as the L298N board. Now that I understand this, I will begin searching for a motor driver that can handle variable/PWM input voltage. I currently have the L298N board and plan to test it with the FX3U controller. After testing, I may decide to purchase one of these boards and modify it by desoldering the potentiometer and connecting the DAC pins to ensure that the input side can support a voltage range of 0-10V.