Simpler IO-Link device integration
Charlie Walker, Smart Sensor specialist with SICK (UK), discusses IO-Link device integration using function blocks.
If your job involves integrating IO-Link devices into any kind of automated system, then the chances are you will have had to create a Function Block. Function Blocks are capsules of information that simplify PLC programming. They are useful tools that can even replace hardwired physical components for common tasks like timers or counters. If, like me, you belong to the ranks of competent, but by no means specialist, PLC programmers who use Function Blocks to make system set-up quicker and more reliable, you will probably also find them a tedious part of the job that most of us probably don’t look forward to.
So how do you create a Function Block? This involves writing some code and specifying the inputs and outputs to that set of instructions. You may include some other functions that already exist within the programming environment. Then, the whole thing is compiled into a library, along with any other supporting files that help it to work. Once it has been fully tested, the function can be called on repeatedly by the PLC without needing to repeat the base code. Just as importantly, the Function Block must be fully documented so that anyone who uses it later also understands what the purpose of the block is, and how it works.
All this takes time, and that means cost. You might have invested hours, and more likely days, depending on the task in hand and the complexity, to write and test Function Block functionality. Even then, you still need to create the library and document the block.
I have had function libraries sent over to me that have been created in a rush by a colleague in order to help me solve a problem. Naturally, I have been grateful, but, without the documentation to support the block, I have needed to spend considerable time understanding how to incorporate it into my code. If specific types of data structures have been used in the Function Blocks, that are not already part of the library, then you must spend extra time creating them before you can really get moving with the project.
The good news is that software tools are now being developed that can quite literally ‘manufacture’ Function Blocks in a matter of minutes. As a result, the scope for operators to introduce new IO-Link integrations is opening up – all without the possibilities of errors creeping in and being repeated. Now, new web-based software technology is being developed that creates IO-Link function blocks and integrates device data into a wide range of common PLC control systems in a matter of minutes. You can follow a step-by-step process in a web-browser dashboard, and create a fully-tested function block ready to use in your code.
You don’t need to be experienced in IO-Link and there’s no need to start searching for parameters, indexes and data formats. You can download a library with all of the software you need to install the Function Block as well as the full supporting documentation.
Let’s imagine a production line, where there is a conveyor system with hundreds of diverter stations. You may want the sensors at each station to be used in very similar ways. Using a function block ‘factory’ gives us a chance to create the control code very quickly for all the sensors, while still having the ability to tweak each one’s exact operation, depending on the inputs selected.
Now, we will also want to extract critical data from the sensors to aid with timely service and maintenance, as well as to avoid unnecessary downtime. That critical data can be extracted automatically via the Function Block. If we monitor the level of dirt build-up on the sensor, for example, then the value of that data is that it allows us to make very accurate predictions about how long we can expect the sensor to perform at acceptable levels, before it fails and we incur downtime. If, for example, we know that we have one week or more before an expected failure, we can schedule maintenance to clean the sensors when it causes us the absolute least downtime. On the flip side, if a failure is imminent, the data enables us to intervene as soon as practical to prevent unscheduled stops.
Sick’s Function Block Factory is the first web-based service of its type that enables users to create function blocks automatically for most common PLCs. It will work for any IO-link device with an I/O device description (IODD), no matter what the device type or its manufacturer. To create a Function Block, users simply sign in to the Sick 24/7 web service, select the IODD file for the IO-link device and the chosen PLC system. The name of the Function Block can be edited to suit naming conventions. Then, the IO-Link parameters and key features of the Function Block are selected.
The function block created can be used to read and write parameters and service data for any IO-Link device. It handles the entire acyclic IO-Link communication including data interpretation, index and sub-index resolution as well as byte-swapping, if required.
As part of the library provided, the data structure already contains all required variables, so the need for manual variable declaration is eliminated. The scope and content of libraries can be defined individually through free selection of the available device parameters and can be adjusted at any time. In addition, process data parser functions can be generated, simplifying and speeding up PLC programming considerably, as well as helping to avoid errors. The process data parser function makes it possible to systematically access any individual piece of information in the IO-Link process data, without having been previously informed of its structure and contents from manuals.
You can select special features to reduce programming effort significantly. So, for example, the multi-selection option allows for simultaneous reading of several parameters and there’s no need to program elaborate sequence chains to read or write the parameters in succession.
Enumerators (enums) replace meaningless numbers with names. This not only accelerates the development process as it is no longer necessary to look anything up, but the source code becomes easier to read and clearer for third parties at a later point in time. A subindex access function serves to reduce data loss and communication length. Instead of complete, complex variables – referred to as records in the IO-Link context – it makes it possible to read out defined sub-variables or to change them via a write function. The entire record therefore does not have to be transmitted back and forth; only a fraction of it must be transmitted, namely the sub-variable.
Data is one of the most important commodities of modern factory environments. To fully realise its value, it must be extracted from the ‘eyes and ears’ of the system as painlessly as possible. Those eyes and ears are the sensors, and the data could be anything from a count value, the amount of dirt on a sensor window or a reflector.
The potential to create Function Blocks quickly and reliably unlocks many more benefits for IO-Link integrations. It invites users to expand the scope of their automation projects and to try out new ideas. So what will your next project be?
Other News from Sick (UK) Ltd
Latest news about Industry 4.0