Task description

The engineer is assigned the task of creating a fully automated Mixer system using TIA Portal V17. The steps for this project are clearly outlined in Volt’s engineer guide document; therefore, even for a beginner in PLC programming, it is easy to follow along.

The system consists of a Mixer motor, two level switches, filling material gates, one filling valve, and one drain valve. All of this equipment has to act as digital inputs and outputs. I must mention that this was one of the key details I missed when I began the project, as my initial thought process was that only sensors were inputs and motors were outputs.

The working sequence was also clearly stated. First, open the filling valve until the high-level switch is reached. Next, add Material A for a specific duration and start the mixer for a specified mixing time, e.g., 30 seconds. Once 25% of the mixing time has elapsed, add Material B for a specific duration. After the mixing time has completed, e.g., 30 seconds, stop the mixer and manually open the drain valve.

Now, that was only one Mixer. The next stage was to implement an automatic logic system, allowing three mixers to work together and drain their contents into one main tank. Sounds easy, right? Not really. This introduced many potential breaking points in the program, and as it was my first time implementing something at this scale, a lot of unexpected issues occurred. Sometimes, I would make the joke, “It was working on my laptop.”

The autologic sequence was as follows. Mixers 1 and 2 must start at the same time. Once 60% of the mixing time in Mixer 2 has elapsed, Mixer 3 starts. After all mixers have completed their mixing cycles, the system waits for 5 seconds before starting the draining process. Mixers 1 and 3 are drained until they are empty, followed by Mixer 2. Once all mixers are empty, the main drain valve opens until the main tank is empty. After a 10-second delay, the operation repeats automatically.

The graphics were to be developed using Siemens TIA WinCC Comfort, but the approach for creating the graphics was left to the engineer’s discretion. The guide document provided an example image of how the UI should look, and I adopted most of its design since it already provided a good layout.

The process

Siemens TIA Portal

My journey began with a series of around 40 TIA Portal tutorials and studying the documentation. My mentor also guided me early on by explaining the dos and don’ts, as well as how to become an efficient engineer from the beginning. Concepts such as UDTs, properly using Function Blocks, and keeping the main block clean were all new concepts to me.

My starter language of choice was Ladder Diagrams, as it was the only language I knew at the time. I noticed that most of the engineers were using Function Blocks and Structured Text, and at the time, it looked overwhelming. I remember thinking, “One day.”

The next two weeks were spent iterating on my Mixer project. The graphics were relatively straightforward, but the code was not as stable. I had introduced a manual/auto mode into my system, which is an essential feature in real-world projects. However, this also allowed my mentor, who was testing the project, to try various combinations of button presses on the HMI, and I won’t lie, it would always break.

But that is the mindset you need to have when developing: “What is the worst thing that can happen if a consumer or operator does this? What if they press XYZ?”

The engineers at Volt are not only good developers but also great teachers and testers. They patiently guided me through the process, and after three weeks, from their perspective, the program was complete. For me, it was the beginning of my automation journey.

Well, this is what I came up with. Of course, I cannot share the code; you would sleep reading this.

Schneider Control Expert + Vijeo Designer

As an automation engineer, you need to be flexible and quick to adapt to different software platforms. Mechatronics as a field naturally develops a dynamic way of thinking, and this plays a key role in situations like these.

From the TIA Portal images, you will notice that I implemented an operator information system in the way I thought was most effective. However, what about alarms? Alarms are a critical part of any automated system, and they play a major role in ensuring safe operation.

I decided to explore this using Schneider’s own Control Expert and Vijeo Designer for the HMI. It was at this point that I truly understood what it meant for a motor to have both digital inputs and outputs, as you cannot simply power up a device and hope that it is running.

For this experiment, I used only one mixer with automatic logic. I also had to learn concepts such as Modbus TCP, direct addressing when using DDTs, and this was the stage where I began programming in Structured Text and using it alongside Function Block Diagrams. That was a significant step forward in my development as an engineer.

Moving from TIA Portal to Control Expert, my code became shorter and more efficient. Previously, I had six Function Blocks written using Ladder Diagrams, but in the end, I only needed one Structured Text script of around 30 lines. This was achieved through the heavy use of custom DDTs and FBD elements that I had never used before, such as the SEL function. If you are an experienced engineer, this is light work for you.

This is what I came up with:

Aveva Plant SCADA

Aveva Plant SCADA is a complex software. It is the kind of software that constantly humbles you, just when you think you understand it, you discover there is another layer to explore. The resources available online are limited, so you have to develop the skill of reading documentation and build from it.

My goal with Plant SCADA was to understand the trend and alarm servers, along with the wide range of tools and features it offers. Even as I write this article, I do not think I have explored even a quarter of what it has to offer.

However, I have learned several concepts so far, such as using OPC and OPC factory servers(OFS), using Genies and Super Genies, as well as developing templates for reusable designs. The next step is to learn Cicode.

An important concept I encountered was the relationship between DDTs, addressing, and SCADA communication. Once I created a DDT in Control Expert and registered a variable of that DDT type, I could not directly assign addresses to the individual DDT variables. Because of this, I had to rely on direct addressing. However, the OFS Configuration Tool allows you to register your Schneider PLC and expose the PLC variables symbolically, allowing SCADA software such as Aveva Plant SCADA to access them using variable names instead of manually assigning addresses.

This is what i have so far:

Conclusion

The experience at Volt Automation was truly one of a kind. The learning experience was invaluable, and the team they have is made up of highly skilled automation engineers. Everyone works together as a team, and they are always willing to provide guidance and support.

A huge thank you to the Volt Automation team for considering and selecting me for this training opportunity. I believe many more engineers will benefit from this experience, just as I have.

Ma'a as-salama!