Any text editor, or even command prompt, can allow you to write code. It's the compiler/interpreter that changes it from text to code. You can also write code for PLC's using a generic text editor in certain cases, on a closed PLC. I love the idea of a PLC allowing you to program in C++.
I understand the need to oversimplify in a short video. But there is a fine line between oversimplification and giving people wrong information. And in my opinion you have crossed it. The benefit of an Open system is to be able to use multiple programming languages and multiple PLCs so that you are never locked by choosing one or the other. Look at OpenPLC allowing you to use RPi, ESP32, and other MCUs/CPUs and other hardware - this is OPEN.
The idea of a plc is simple logic that can be understood and edited by non programmers. By going to a high level language you gain an incredible amount of horsepower but defeat the reason these things were invented.
Good explanation. But what about program cycle in open PLC? Does it takes similar execution time as closed PLC? As I remember the main purpose of PLC based system other more flexible PC ones is very short cycle time that is critical in many industrial automation process. So my question in general is: will we lose cycle time by increasing flexibility?
The answer is in the controller on which the program is executed. The "open" part of the description of "open systems" refers to the ability to programming the logic independently of the manufacturer of the controller it runs on. This gives the engineer flexibility to use the best tools available for development of the logic. However, the code is still compiled and downloaded to a CPU for execution. The speed of open controllers, such as PLCNext, are just as fast as comparable PLCs from Rockwell or Siemens.
@@realpars Thk u for detailed answer. Glad to know that program cycle is still depends on size of compilled programm. I am stronlgy agree that ability to use the same code on different PLC is a huge benefit of that technology!
Great video! I know you mentioned you aren't sure about where the design dept draws those, but is there anything you can do to ask them. I want to learn to do those drawings in that style. Thanks in advance :)
Hi folks! I don't really understand why we call PLC "open" when the PLC can be programmed only using its original software and C++. We cannot program it with help, for instance Python, or whatever... As for me, PLC "C" in the video example is also closed. But it's only my point of view.
Thank you for your comment. "Open" is probably an over-used word that needs some context. If a PLC can be programmed with other than the programming software provided by the PLC vendor, then it is considered "open". Every CPU requires programs to be compiled into code of a certain structure and providing an "open" programming environment is easier to do with some hardware platforms than others. In my mind, the only true open platform would be one where I could use a text editor create a downloadable program to a CPU. We will get close to that ideal in time.
Hi Sir, I'm recently passed out mechanical engineering (bachelor's in mechanical engineering) student in At present situation which is the best job for mechanical student can u please suggest.Thank you.
Yes, C++ can be used for programming. Per the Phoenix Contact website, "You can create programs in C++ and import those into PLCnext Engineer. There, you can instantiate the programs and use them in the same way as conventional IEC 61131-3 programs in real time".
I they could also support python it would be a great advantage as C++ could be a bit of a challenge for beginners where as one can learn python quite easily.
I am wondering if we are to program PLC using Visual studio then how will we download written program in PLC? Would I require PLCNext engineer software for that?
That’s an interesting concept but wasn’t PLC software designed in ladder logic so it would be simple to understand and easier for electricians to read? I recently had a project that involved programming a stepper motor controller in c++. What a nightmare! What do you consider the clunkiest of all the closed PLC software to use? We have some Mitsubishi PLC’s and their software sucks. Not a big fan of Rockwell’s Connected Components Workbench either.
Thank you for your comment. I am an old-timer in automation (40+ years) and I know that the more advanced languages are going to create problems in troubleshooting for most technicians. For engineers, these advanced languages are familiar, but technicians do not have the skills, for the most part to troubleshoot these programs. I always ask the question, "Are you willing to support your C++ program on third shift, weekends, and holidays?" when I have an engineer say that ladder is old-school and we need to program in C++ or some other advanced language.
Writing a C++ programs for PLC is a good thing, but you have to be careful with stack overflow, memory management and many other things. C++ is not an easy language, that's why higher level languages like LD,FDB,ST were invented long time ago. PLC are computers, and inside there is probably some ARM microcontroller. Other MCU board like Arduino, STM Nucleo, etc. have free development tools, and main language of choice is C and less C++, but those boards aren't the final product. There is no optoisolation, weak IO driving capabilities, no power supplier, no case (PCB exposed), no EMI certifications, etc. Those boards are for DIYers and electronic designers. PLC is a ready to use product that can be used straight out of the box, and mount into DIN rail. Writing C++ programs feature can bring new customers that are familiar with "normal" programming languages. With strong MCU you can flash microPython interpreter, and use Python. Maybe PLCnext designers should implement that interpreter?
Like most industrial products, new products are driven by demand. The drawback of microPython is the limited I/O support, which is the main feature industrial control systems are built around Instead of a 32-channel GBIO with fixed I/O types per channel, we would need to see a 256-channel GBIO with configurable channels before a microPython controller would be viable for large-scale processes, IMHO. But the world is moving toward these products, so it may be sooner than later that they will be available!
I am finishing a stm32 board for replacing siemen's logo in some of my lower end projects. The logo works, but it is horrible to program and full of limitations in such a way that i consider the microcontroler using freertos way better for everything
i thought the open plc can be programmed with any software such as tia portal, cx-one... it has just been added with another language but does not make it open at all... ??????
The answer is in the controller on which the program is executed. The "open" part of the description of "open systems" refers to the ability to programming the logic independently of the manufacturer of the controller it runs on. This gives the engineer flexibility to use the best tools available for development of the logic. However, the code is still compiled and downloaded to a CPU for execution. That said, every CPU requires code to be structured at the machine level in a certain way. In open systems, the compiler, or other interfaces available for the specific CPU, allow multiple programs, but not all, to be used to create the PLC code.
Imagine a PLC programmed through the browser with in built program and UI through a browser, forget A,B,C,D,E. It’s truly open.
I would love that, then I could drop the intel processor and go with ARM macbook
@@SamCaralarga Oh yes, I would miss spending a whole day to install some bloated Siemens software
Rockwell Micro 800 range does this.
Any text editor, or even command prompt, can allow you to write code. It's the compiler/interpreter that changes it from text to code.
You can also write code for PLC's using a generic text editor in certain cases, on a closed PLC.
I love the idea of a PLC allowing you to program in C++.
Thank you for sharing that, Tommy!
Yeah but editing code in notepad is so 90.
I understand the need to oversimplify in a short video. But there is a fine line between oversimplification and giving people wrong information. And in my opinion you have crossed it.
The benefit of an Open system is to be able to use multiple programming languages and multiple PLCs so that you are never locked by choosing one or the other.
Look at OpenPLC allowing you to use RPi, ESP32, and other MCUs/CPUs and other hardware - this is OPEN.
As a continuation of this topic, I would love a video on the subject of IEC 61499 and vendor-independent control systems.
Thanks for your topic suggestion, Kamikasi! I will happily go ahead and pass this on to our course developers.
Thanks again for sharing!
I had a plc next on my computer desk at the office for the last 2 month , can't wait to have time to play with it ! D:
Great! Happy learning, Flyte! :)
The idea of a plc is simple logic that can be understood and edited by non programmers. By going to a high level language you gain an incredible amount of horsepower but defeat the reason these things were invented.
Simple logic that costs thousands of dollars just to dabble with. We need simplicity and openness.
RealPars is excellent, from Brazil.
Thanks a lot for your support, Alexandre!
Good explanation. But what about program cycle in open PLC? Does it takes similar execution time as closed PLC? As I remember the main purpose of PLC based system other more flexible PC ones is very short cycle time that is critical in many industrial automation process. So my question in general is: will we lose cycle time by increasing flexibility?
The answer is in the controller on which the program is executed. The "open" part of the description of "open systems" refers to the ability to programming the logic independently of the manufacturer of the controller it runs on. This gives the engineer flexibility to use the best tools available for development of the logic. However, the code is still compiled and downloaded to a CPU for execution. The speed of open controllers, such as PLCNext, are just as fast as comparable PLCs from Rockwell or Siemens.
@@realpars Thk u for detailed answer. Glad to know that program cycle is still depends on size of compilled programm. I am stronlgy agree that ability to use the same code on different PLC is a huge benefit of that technology!
Good Video!! Will have to check the course out.
Hope you enjoy it!
Great video! I know you mentioned you aren't sure about where the design dept draws those, but is there anything you can do to ask them. I want to learn to do those drawings in that style. Thanks in advance :)
Thank you very much! I quickly asked that for you, and they mostly use simply Adobe :). Hope this helps!
Thank u guys
You're very welcome, Dawit!
Hi folks! I don't really understand why we call PLC "open" when the PLC can be programmed only using its original software and C++. We cannot program it with help, for instance Python, or whatever... As for me, PLC "C" in the video example is also closed. But it's only my point of view.
Thank you for your comment. "Open" is probably an over-used word that needs some context. If a PLC can be programmed with other than the programming software provided by the PLC vendor, then it is considered "open". Every CPU requires programs to be compiled into code of a certain structure and providing an "open" programming environment is easier to do with some hardware platforms than others. In my mind, the only true open platform would be one where I could use a text editor create a downloadable program to a CPU. We will get close to that ideal in time.
Hi Sir, I'm recently passed out mechanical engineering (bachelor's in mechanical engineering) student in At present situation which is the best job for mechanical student can u please suggest.Thank you.
Helpful
Glad to hear that. Happy learning!
Very cool explanation of open PLC...can we used c++ language for plc programming?
Yes, C++ can be used for programming. Per the Phoenix Contact website, "You can create programs in C++ and import those into PLCnext Engineer. There, you can instantiate the programs and use them in the same way as conventional IEC 61131-3 programs in real time".
@@realpars thank you sir
I they could also support python it would be a great advantage as C++ could be a bit of a challenge for beginners where as one can learn python quite easily.
PLCnext also supports Python
I am wondering if we are to program PLC using Visual studio then how will we download written program in PLC? Would I require PLCNext engineer software for that?
Yes, you would use the PLCNext Engineer software: www.plcnext-community.net/makersblog/how-to-use-visual-studio-code-to-write-c-for-plcnext/
That’s an interesting concept but wasn’t PLC software designed in ladder logic so it would be simple to understand and easier for electricians to read? I recently had a project that involved programming a stepper motor controller in c++. What a nightmare! What do you consider the clunkiest of all the closed PLC software to use? We have some Mitsubishi PLC’s and their software sucks. Not a big fan of Rockwell’s Connected Components Workbench either.
Thank you for your comment. I am an old-timer in automation (40+ years) and I know that the more advanced languages are going to create problems in troubleshooting for most technicians. For engineers, these advanced languages are familiar, but technicians do not have the skills, for the most part to troubleshoot these programs. I always ask the question, "Are you willing to support your C++ program on third shift, weekends, and holidays?" when I have an engineer say that ladder is old-school and we need to program in C++ or some other advanced language.
The PLC manufacturers could open the architecture and the ISA instructions so we can make our own compilers e maybe new languages
nice
Glad to hear that!
Writing a C++ programs for PLC is a good thing, but you have to be careful with stack overflow, memory management and many other things. C++ is not an easy language, that's why higher level languages like LD,FDB,ST were invented long time ago.
PLC are computers, and inside there is probably some ARM microcontroller. Other MCU board like Arduino, STM Nucleo, etc. have free development tools, and main language of choice is C and less C++, but those boards aren't the final product. There is no optoisolation, weak IO driving capabilities, no power supplier, no case (PCB exposed), no EMI certifications, etc. Those boards are for DIYers and electronic designers.
PLC is a ready to use product that can be used straight out of the box, and mount into DIN rail. Writing C++ programs feature can bring new customers that are familiar with "normal" programming languages. With strong MCU you can flash microPython interpreter, and use Python. Maybe PLCnext designers should implement that interpreter?
Like most industrial products, new products are driven by demand. The drawback of microPython is the limited I/O support, which is the main feature industrial control systems are built around Instead of a 32-channel GBIO with fixed I/O types per channel, we would need to see a 256-channel GBIO with configurable channels before a microPython controller would be viable for large-scale processes, IMHO. But the world is moving toward these products, so it may be sooner than later that they will be available!
I am finishing a stm32 board for replacing siemen's logo in some of my lower end projects. The logo works, but it is horrible to program and full of limitations in such a way that i consider the microcontroler using freertos way better for everything
i thought the open plc can be programmed with any software such as tia portal, cx-one... it has just been added with another language but does not make it open at all... ??????
The answer is in the controller on which the program is executed. The "open" part of the description of "open systems" refers to the ability to programming the logic independently of the manufacturer of the controller it runs on. This gives the engineer flexibility to use the best tools available for development of the logic. However, the code is still compiled and downloaded to a CPU for execution. That said, every CPU requires code to be structured at the machine level in a certain way. In open systems, the compiler, or other interfaces available for the specific CPU, allow multiple programs, but not all, to be used to create the PLC code.
👏👏👏🇧🇷
🙏🏻🇮🇳