Recently I was working on an S7-300 PLC project that required a fairly advanced HMI, so we chose the Comfort Panel to use Faceplates for the many pop-ups and identical controls required. Creating these Faceplates was a great way to increase our productivity in development, and I would like to share one very important lesson that we learned in the process.
The test project I created uses an S7-300 PLC and a Comfort Panel HMI.

The HMI control that I created is a Start-Stop HMI pushbutton control as seen below. After bringing the two buttons onto the HMI, I created a Faceplate based on them called “StartStopFaceplate”.

My desire was to connect this control to the datatype “udtStartStopPB” that I use in the “dbStartStop” datablock. So, I dragged the datatype over to the Project Library.


I created a StartStop property for the StartStopFaceplate and I wanted to assign the datatype of that property as “udtStartStop”. However, the datatype was not available. Perhaps this is where you found yourself during a project and lost all hope, so I hope you read on.


When I ran into this, I noticed that there were other datatypes that I had manually created in the Project Library that were showing up as potential types for StartStop. Intrigued, I created an identical (in all but its name udt_StartStop300) datatype to udtStartStop, and then I was in business.


I wasted no time in making the necessary connections for the desired usage of my Start-Stop control.

Once I released the latest version of my Faceplate it was time to map its Interface to the PLC. Again, I screeched to a halt right before I thought I would finish.


The solution was to use HMI tags that have the same data type as the Faceplate (udt_StartStop300). It is important to look up the absolute addresses of the data in the datablock and enter them correctly for the HMI tags.


My finished result looks like this when running:


I would not have run into this if we had been using an S7-1500 or S7-1200 PLC, and I think I would have used an S7-1500 on my project if I could do it again.
Learn more about DMC's Siemens PLC Programming services.