Using the Siemens Open Library

Using the Siemens Open Library

At the beginning of June, DMC, in conjunction with Siemens Industry, released the Siemens Open Library. The Siemens Open Library is an Open Source Library containing function blocks and HMI faceplates for common controls, aiming to reduce development time for common industrial equipment while providing a reusable and customizable code base the user can alter to work with any application necessary. Check out this blog post for more information on the release of the Open Library. 

I am currently working on a project which involves pumping melted butter through storage tanks and out to loading trucks. The butter system has multiple melting ovens that deliver to storage tanks, with the ability to transfer butter from tank to tank. The system has many valves and pumps for filling and discharge, and a flow meter to measure the amount of butter delivered to the trucks. This was an excellent opportunity to utilize the power of the Open Library. This project uses Open Library Version 1.1, a Siemens S7-1500 PLC, two Comfort Panel HMIs, and was programmed using TIA Portal v13 SP 1 Update 8.

Using the Siemens Open Library, along with the heavy documentation included, allowed me to quickly get this project up and running. The documentation walked me through how to import the Open Library, add Function Blocks into my project, set up Data Blocks for HMI interfacing and Errors, and even how to implement the Library Function Blocks in my code. At this point, all I had to do was drag and drop in all my devices!

open lib 1

Once I had the basic logic in place, the next step was creating the HMI screens and popups. The documentation walked me through the implementation of the library icons and popups, showing me how to insert the faceplates and map the PLC tags, HMI tags, and the objects together to give me control and animations for each device. This enabled me to have manual control of all the devices in the project through the HMI. Up to this point, the only changes I’ve made to library objects have been resizing faceplates and changing font sizes, which is a huge chunk of development and time saved. 

open Lib 2

Solenoid Valve HMI Popup for Interlocked Valve


open lib 3System Mode Control Popup


valves small

Left: Valve Currently Opening/Closing. Middle: Valve Closed in Manual Mode. Right: Pump Running Forward

However, I found that I needed some extra functionality to the Solenoid Valve block that the library block was lacking. The ball valves used to start and stop flow did not stop rotating at the fully open or closed limit. If the output signal to move the valve remains on after the open or closed limit switch is activated, the valve continues to spin, which is not ideal. Thanks to the Open Source License, I was able to go and change the functionality to what I needed. Since I duplicated the block from the Open Library, almost all of the functionality remained exactly the same, which meant I could still use the icons, popups, UDTs, and documentation from the Open Library block, with a small note detailing the changes I made. 

open lib 4

Original Open Library Block 

Open lib 5Modified Logic to Stop Moving Valves

The Siemens Open Library allowed me to quickly get a functioning Manual Mode and HMI by simply dropping in the library blocks into my logic and the faceplates into the HMI screens, without spending the time to implement animations that linked the devices, popups, and faceplates. Want to give the Siemens Open Library a try yourself? Download it using this link.

Check out the Siemens Open Library Website


There are currently no comments, be the first to post one.

Post a comment

Name (required)

Email (required)

Enter the code shown above:

Related Blog Posts