...
...
Introduction
To start using port PNIO stack with own application one has to:
Define Software Model;
Create Application Code;
Create Device Description (GSD/GSDML file);
To assist its customers with getting started quickly, port provides Communication Creator utility application.Industrial Communication Creator for PROFINET comes with easy to use forms and wizards, which make it easier to configure PNIO stack to user needs.
Functionality provided by the tool include
Generation of stack configuration file;
Generation of software model definition file;
Generation of device description GSDML file;
User assistance for each configuration setting;
Detection of common configuration errors;
Step by step configuration guide in form of task list.
...
PROFINET Projects
port PNIO stack configuration, together with software model, is defined as a single Communication Creatorproject. Using this project, the tool can generate appropriate code files. Working with PROFINET projects is analogous to working with otherIndustrial Communication Creator projects. If some aspects are not clear, please check help pages for common functionality:Industrial Communication Creator User Guide.
...
Project Type
User will be able to create and edit PROFINET projects if he has support for this protocol installed intoIndustrial Communication Creator application. One can check if that is the case, by opening About Dialog from Help main menu and checking if section Supported project types contains line "PROFINET (full version)".
In Package Explorer View, PROFINET projects are shown with green PN icon ( ). Project node contains up to three project contents, as shown on Figure 31. Meaning of these sub-nodes will be explained in Code Generation chapter.
Figure 31: Example PROFINET project entry in Package Explorer view
Creating New PROFINET project
The creation of new PROFINET project is straightforward. From File main menu, select New option. In case the Communication Creator product supports more project types, the user will be asked to choose what kind of project to create. Select entry PROFINET Project (PROFINET) - see Figure 32 and click OK.
Figure 32: Contents of Select Wizard dialog with PROFINET entry
Specify project file location and version
On the first page of wizard, user is asked to specify location of project file and the version of the project. User can choose between versions with or without IRJ45 support. Wizard window looks similar to that presented on Figure 33. To proceed, click Browse button to display your OS-specific select-file dialog. Project file name has extension .iccproj.
Tip: You can organize project files on disk however you want, but consider creating a new folder for each new project. This way it will be easier to know which code file belongs to which project.
Figure 33: First page of New Project wizard
It is possible to select already existing project file. User must be careful though, as it will result in losing all information saved to this file and replacing it with clean new project. This will happen as soon as Wizard finishes. Wizard warns about overwriting existing files with message shown on Figure 34.
Figure 34: Warning that specified file already exists
After location of project file is specified, proceed to next page by clicking Next button.
Specify location for generated code
Second wizard page asks user to specify location of four files that will be generated based on project configuration.
Software model configuration file goal_appl.c;
GOAL specific settings file goal_config.h;
GSDML device description file.
The page is presented on Figure 35. File name of GSDML file is not immediately known as it depends on configuration options. As initial setup, wizard will suggest to locate these files in the same directory as project file.
Figure 35: Second page of New Project wizard
You may change location where each of these files is to be saved by using Browse button. Be careful to not overwrite some previously created files. Wizard will warn user if goal_config.h or goal_appl.c files already exist in location specified - see Figure 36.
Figure 36: Warning that a target file already exists
Finish project creation
After all locations are set, click Finish button to create the project. You may also get back to previous page using Back button. If you do not want to continue with new project creation, click Cancel.
It may be possible that one of selected locations will be inaccessible for the tool. For example, user running application may not have write rights to selected directory. In this case wizard will not finish, but display error message - Figure 37. In this case user has to change specified path and try again.
Figure 37: Error message when projects files can not be created
During wizard finish, user will be once again warned about every overwrite risk that was detected, and asked for confirmation - Figure 38. In case of any doubts, click Cancel to postpone project creation. Otherwise, click OK to continue.
Figure 38: The user has to confirm file overwrite
After project creation wizard finishes successfully, project file will be created and filled with empty project configuration. Other files (goal_config.h, goal_appl.c, GSDML) will be created later. The new project will be opened in new editor tab that appears on top of application window.
Validation
PROFINET projects are subject to correctness checks as every otherIndustrial Communication Creator project:
After project is opened;
Before project is saved;
At user request.
You can request project validation using Package Explorer. Right click on project entry in Package Explorer View and select Validate menu option. Validation may take a few seconds. After it finishes, dialog with results appears. If no problems are found, the message will simply say "OK". Otherwise, quick overview of detected problems will be displayed in dialog similar to presented on Figure 39
Figure 39: Dialog with results of explicitly request project validation
See Common Problems chapter for list of common issues that may be reported during validation, and how they may be resolved.
PROFINET projects share editing tools with otherIndustrial Communication Creator project types. To learn about basic editor elements such as toolbar or input forms, see help pages for common functionality:Industrial Communication Creator User Guide.
Editor Extensions
Top Page
After project is loaded, editor will display graphical top page for it. User can always return to this editor page by using Go Home tool ( ).
Top page for PROFINET project is presented on Figure 40. Each burgundy-red block is a click-able link to editor page with configuration elements. You can also hover mouse cursor over the figure to display longer description of block contents as tool-tip.
Blocks are organized into three groups:
General
General Settings of PNIO stack configuration.
Project Preferences
Settings for C Code generation.
Device Description
Settings related to creation of device description file.
Software Model
Structure of objects of which application's software model is made plus configuration of the driver.
Figure 40: Top Page for PROFINET project
...
Modules/Slots Page
Modularity of PNIO stack is represented in software model. Process interfaces are separated into Modules and Submodules, while addresses are represented as Slots/Sub-slots. Number and properties of these objects are to be specified by the user, with each new project being initialized with few example Modules and Slots as starting point.
Editor page for managing Modules and Slots is available from top page under blocks Modules, Slots. The page itself is presented on Figure 41. Be aware that number and names of blocks depend on your current project configuration.
Figure 41: Modules/Slots editor page
Editor page displays diagram of currently specified Modules and Slots. Modules being on the left and Slots on the right, or vice versa - depending what block has led to the page.
Two gray, connected with each other, blocks at top of the page, represent Device Access Point Modules (number 1, 2) and Slot (number 0). These objects cannot be changed, and their identification numbers are reserved - not available for user objects.
Using the page, user can navigate to configuration of specific module/slot (just click appropriate block), add/remove objects and create connections between them. There is an additional, vertical toolbar located on the right side of diagram that contains tools for this purpose.
Sonderzeichen fehlen
Add Object
Creates a new Module or Slot. To use, first click the tool button, then click on empty area inside desired group of figures: Modules to create Module, Slots to create Slot.
Remove Object
Deletes Module or Slot and removes it from diagram. To use, first click the tool, then object you want to remove.
Create connection
Plugs Module into a Slot. To use, first click the tool button, then the two objects you want to connect. If you want to connect objects that already have connections, first use Remove connection tool.
Remove connection
Un-plugs a Module from Slot. To use, first click the tool button, then one of connected objects.
Align Modules
When clicked, redraws diagram to align each connected Module to its Slot.
Align Slots
When clicked, redraws diagram to align each connected Slot to its Module.
Help Tool
Displays help for the figure. To use, first click tool button, then one of blocks.
Code Preview
Editor for PROFINET projects has four additional tabs beside main Design Tab. All of these are used for preview of generated code.
Figure 42: Tabs for PROFINET editor
Sonderzeichen fehlen
goal_appl.c
Preview of C file where software model is defined for use in PNIO/GOAL stack.
goal_config.h
Preview of C header file for GOAL stack configuration.
GSDML
Preview of GSDML file displayed using HTML style.
Each time code preview tab is opened, its contents are refreshed to match current project configuration. If project contains errors or inaccuracies previewed code may be incorrect or code will fail to generate altogether. In any case, project validation provides clues about nature of the problem.
Code Generation
The PROFINET Communication Creator generates several files to be used within the port PROFINET IO Stack. This chapter shows how to generate the files via the command line, gives a short overview over the meaning of the different generated files and how to view them.
CMD generation
It is possible to generate files and set variables through CMD commands. The CMD Communication Creator is started via commands with following structure:
...
iccCmd
...
...
<singleOption>
iccCmd <option 0> ... <option n> <iccProjectFile>
Case
...
1 can only have one option (see Table 38).
Case
...
2 can consist of multiple options (see Table 38) but the end of the command has to be always the full path of the project file. Options are separated by whitespaces and start with a double minus (--). The steps done by the commands are documented in the errorProtocol.txt file and after every command the project file will be saved. See chapter 25 for usage of options in commands.
...
Pre-/Post-Generation
It is possible to execute application-specific programs before and after generation. The commands can be entered about the Generation-block in the editor view > Pre-/Post-Generation Commands. The commands can be a shell-script or a batch file, or you can call an executable file, e.g. the GSDML checker, make all. The output of the command is written into the information file "errorProtocol.txt".
...
Generated files
goal_appl.c
goal_appl.c file is a C code file which contains structure definitions of application software model.
Code can be displayed for inspection using appropriate editor tab. Location where goal_appl.c file is saved is specified when project is created. The path can be seen on top of code-preview tab. User can change this location using Browse button ( ) in code-preview tab toolbar.
If auto-save check box is selected, the code file will be rewritten, each time project changes are saved to disk. User can also save file manually using Save toolbar button.
Contents of goal_appl.c file depend on what Modules, Slots and Parameters are defined. You can get more information about software model in Software Model chapter.
goal_config.h
goal_config.h file is a C header file which contains definitions needed for GOAL stack configuration.
Code can be displayed for inspection using appropriate editor tab. Location where goal_config.h file is saved is specified when project is created. The path can be seen on top of code-preview tab. User can change this location using Browse button ( ) in code-preview tab toolbar.
If auto-save check box is selected, the code file will be rewritten, each time project changes are saved to disk. User can also save file manually using Save toolbar button.
Contents of goal_config.h file depend on what Modules, Slots and Parameters are defined. You can get more information about software model in Software Model chapter.
GSDML
Device description, which is needed for IO controller to properly initialize connection with PNIO device, is saved in GSDML format. GSDML is a XML document which contains PROFINET device description (GSD).
Code can be displayed for inspection using appropriate editor tab.
Directory where GSDML file is saved is specified when project is created. The path can be seen on top of code-preview tab. User can change this location using Browse button ( ) in code-preview tab toolbar. The file name is created based on GSDML specification (v.2.34) and is made of following segments:
"GSDML";
GSDML version;
Manufacturer Name;
Device Name;
Date.
File name segments are configurable.
Tip: It is easy to get confused when changing of GSDML settings cause multiple copies of GSDML files to be created. Therefore it is good practice to keep all files associated with one project in separate folder. Be careful to not incidentally overwrite a GSDML file you have created with other project.
For device description to be displayed in user-friendly format, XSL style-sheet file will be copied into the same directory as GSDML file. This is usually done, first time the file is opened in the preview tab. It may be worth noting, that with style-sheet in place, one can also open GSDML file using other WWW browser.
Contents of GSDML file depend on Software Model and Device Description Settings.
Tasks
Industrial Communication Creator makes use of task lists as a method of assisting users through project creation. Each task is constructed from a set of conditions that are checked automatically each time project is saved. User can browse unfinished tasks using Tasks View application part.
As a means of visual feedback, editor blocks are decorated when there are unfinished tasks detected for their contents - see Figure 43.
Figure 43: Block decorations depending on tasks
For a list of possible open PROFINET specific task, please see chapter 18.
Common PROFINET problems
During Project Validation problems can be detected in user project. These are collected by Problems View application part, for the user to browse.
In chapter 19 the list of common problem reports concerning PROFINET projects, their meanings and solutions can be found.
The PROFINET Software Model
Obligatory step of PNIO stack configuration is definition of software model. The software model is supposed to reflect modular and hierarchical structure of hardware it was derived from.
Modules and Slots
The model isolates process interfaces from addressing. The former are represented by Modules, and the latter by Slots. Each of these object types is further separated into one or more child objects. Modules contain Submodules, Slots contain Subslots. On Figure 44 the concept was illustrated with a simple example.
Figure 44: Example device modules and slots
port PNIO device stack comes with predefined Modules (number 1,2) and Slot (0) for Device Access Point (DAP). These objects are not available for editing.
User is free to add and remove objects in software model with the limitation that minimal user-specified software model has one Module and Slot. Also, each Module and Slot must contain at least one child (Submodule, Sub-slot).
Software model can define connection between (Sub)Module and (Sub)Slot (in other words plug Module into Slot).
Parameters and Record Data
Each Submodule object can be parameterized by referencing one or more Parameter objects. Parameters are addressed using 16-bit unsigned index number.
Submodule parameter can be made accessible for IO Controller by linking it to Record Data object.
Device Access
...
Points
The special module Device Access Point connects the device to the network. Initial project template for PROFINET comes with 4 DAPs already defined. It is possible to add up to 4 DAPs depending on user preference and configure the category(see Figure 45). Properties of the DAP will be put into GSDML file.
Figure 45: Overview of all created DAPs
The following section describes the different DAP properties users can set.
Category
Figure 46: Category input field for all DAPs
Used by an engineering tool to group all DAPs within its catalog.
Name
Figure 47: DAP name input field
Human-readable name of the DAP. Maximum 100 characters. Shall be concise, yet descriptive. Uniqueness is not enforced, but shall be avoided as potential source of confusion.
Name of DAP is shown as its label in tree view.
The details-button reveals more specific properties.
Number of ports
Figure 48: DAP number of ports entry field
Number of additional port submodules (maximum 4) of the DAP.
Description
Figure 49: DAP description input field
Additional text information about the DAP.
Conformance Class
Figure 50: DAP conformance class selection field
Specifies the conformance class of the DAP. Possible selections are A, B and C.
Minimal Device Interval
Figure 51: DAP minimal device interval selection field
Sets lowest possible time interval for sending cyclic IO data.
DNS compatible name
Figure 52: DAP DNS compatible name input field
Default name of device (used by engineering tool for name of station).
Implementation Type
Figure 53: DAP implementation type input field
Additional information about the DAP's standard implementation.
Graphic Item
Figure 54: DAP graphic item selection field
Specifies the used graphic file by the DAP selectable by the “…”-button. Graphics have to be created by the user (see chapter 9.7.14).
Module Info
Figure 55: Module Info input fields
Specifies the soft- and hardware release of the DAP.
Modules
Module represents process interface. Initial project template for PROFINET comes with three example modules already defined. They can be changed or removed depending on user preference.
The following section describes the different module properties users can set.
Name
Figure 56: Module name input field
Human-readable name of the module. Maximum 100 characters. Shall be concise, yet descriptive. Uniqueness is not enforced, but shall be avoided as potential source of confusion.
Name of module is shown as its label in tree view. It will be put into software model code as well as device description code.
Identification number
Figure 57: Module number input field
Identification number of the module. Unsigned 32-bit integer. Each module in device must have unique number. Numbers below 3 are reserved. Module number together with the name are displayed as Module's label, usually in both hexadecimal and decimal (in parenthesis) format e.g. "Module: nineteen 0x13(19)".
When changing number value, one can use his/her preferred format: decimal, octal (with 0 prefix) or hexadecimal (with 0x prefix). New value won't be accepted when previously mentioned constraints are not met - the red error sign will appear next to input field.
Description
Figure 58: Module description input field
Additional text information about Module. It will be put into GSDML file.
Useable by DAPs
Figure 59: Module useable by DAPs selection
Enables the module to be useable by the selected DAP(s). If selected the module appears in DAP’s UsableModules-list which is used in GSDML file.
Allowed in slots
Figure 60: Module allowed in slots selection
Sets the “AllowedInSlots” attribute of the Module. This has only an effect when the Module is useable by one or more DAPs.
Slot selection
Figure 61: Module Slot selection field
Specifies into which slot module is plugged. This selection is optional - if no Slot is selected the form will say "No Slot selected".
The user can select Slot for Module from existing ones, by using the Browse button (Figure 61 - the left one). Clicking the button will open simple list dialog with possible selection options. To plug Module into Slot, select its entry on the dialog's list and click OK. To unplug Module, select No Slot option. As Module can be plugged only in one Slot at the same time, only one option can be selected. To avoid being redundant, current selection is not available to choose from.
As already mentioned, no two Modules can be put into the same Slot simultaneously. Therefore, assigning Module to Slot X, will result in unplugging Module that was plugged to Slot X previously. The tool detects and warns user if this is about to happen - see Figure 62.
Figure 62: Warning if slot is already in use
The same effect of plugging Module into already existing Slot, can also be achieved by using Create Connection tool ( ) on model blocks.
The Create button - the right one on Figure 4, is a shortcut that allows the definition of a new Slot and assigns it to the Module at the same time.
Fixed
Figure 63: Module fixed selection
Specifies if Module is fixed in the selected slot. This has only an effect when the module is useable by one or more DAPs.
Module Info
Figure 64: Module's module info input fields
Specifies the soft- and hardware release of the Module.
Submodules
Submodule is a child object for Module. Each Module must have at least one Submodule defined. One can browse Module's children using tree view inside editor.
Figure 65: Fragment of editor for Module
When any Module is opened in editor, user is presented with tree representation of Module structure on the right side of editor tab - see Figure 65. Submodule page can be opened, simply by clicking associated tree node.
Figure 66: Module's submodule management field
Submodule is a child object for Module. From Module's editor page, user is able to create new Submodules and remove existing ones.
Use Add Submodule button (the left one on Figure 66) to create new Submodule and add it as child of current Module. Clicking on button will launch Create Submodule Wizard.
Use Remove Submodules button (the right one on Figure 66) to remove Module's Submodules. Clicking on button will open simple selection dialog with the list of Module Submodules. You can select more Submodules than one by having Shift key pressed while clicking on the entries.
Remember: Every Module must have at least one Submodule. The tool will not allow to remove all Submodules of the Module.
The following section gives an overview about the submodule properties the user can set.
Name
Figure 67: Submodule name input
Human-readable name of Submodule. Limited to 100 characters. Shall be concise, yet descriptive. Uniqueness is not enforced, but shall be avoided as potential source of confusion.
Name will be put both to software model file and to device description file.
Identification Number
Figure 68: Submodule number input
Identifier of the Submodule. Must be unique within Module. Unsigned 32-bit integer number. Submodule number together with the name are displayed as Submodule's label, usually in both hexadecimal and decimal (in parenthesis) format e.g. "Submodule: twelve 0xc(12)".
When changing number value, one can use his/her preferred format: decimal, octal (with 0 prefix) or hexadecimal (with 0x prefix). New value won't be accepted when previously mentioned constraints are not met - the red error sign will appear next to input field.
Description
Figure 69: Submodule description input
Additional text information about Submodule.
Data Direction
Figure 70: Submodule date direction input
Specifies a kind of interface the Submodule represents. It can be input, output, both or none. Shall be consistent with input and output data type settings.
Input Data Type
Figure 71: Submodule input data type
Specifies type of input data. Possible options are:
None - for when data direction is neither an Input nor Input/Output;
Unsigned 8 - unsigned 8 bit integer number; values from 0 to 255; takes one byte;
Unsigned 16 - unsigned 16 bit integer number; values from 0 to 65535; takes two bytes;
Unsigned 32 - unsigned 32 bit integer number; values from 0 to 4294967295; takes four bytes;
Signed 8 - signed 8 bit integer number; values from -128 to 127; takes one byte;
Signed 16 - signed 16 bit integer number; values from -32768 to 32767; takes two bytes;
Signed 32 - signed 32 bit integer number; values from -2147483648 to 2147483647; takes four bytes;
Octet String - string of characters, each of them taking one byte;
Data type setting determines input unit. Input data length determines how many input units there are.
Input Data Length
Figure 72: Submodule input data length
Specifies length of input data in bytes. The value is a 16 bit unsigned integer. Shall be consistent with data type. That means it has to be divisible by byte-size of the unit. Depending on data type, valid values are:
None - 0;
Unsigned 8 - 1, 2, 3, 4, ..., 65535;
Signed 8 - 1, 2, 3, 4, ..., 65535;
Octet String - 1, 2, 3, 4, ..., 65535;
Unsigned 16 - 2, 4, 6, 8, ..., 65534;
Signed 16 - 2, 4, 6, 8, ..., 65534;
Unsigned 32 - 4, 8, 12, 16, ..., 65532;
Signed 32 - 4, 8, 12, 16, ..., 65532;
Input Item description
Figure 73: Submodule input item text-ID and value
This sets additional information about the submodule's input DataItem.
Output Data Type
Figure 74: Submodule output data type
Specifies type of output data. Possible options are:
None - for when data direction is neither an Output nor Input/Output;
Unsigned 8 - unsigned 8 bit integer number; values from 0 to 255; takes one byte;
Unsigned 16 - unsigned 16 bit integer number; values from 0 to 65535; takes two bytes;
Unsigned 32 - unsigned 32 bit integer number; values from 0 to 4294967295; takes four bytes;
Signed 8 - signed 8 bit integer number; values from -128 to 127; takes one byte;
Signed 16 - signed 16 bit integer number; values from -32768 to 32767; takes two bytes;
Signed 32 - signed 32 bit integer number; values from -2147483648 to 2147483647; takes four bytes;
Octet String - string of characters, each of them taking one byte;
Data type setting determines output unit. Output data length determines how many output units there are.
Output Data Length
Figure 75: Submodule output data length
Specifies length of output data in bytes. The value is a 16 bit unsigned integer. Shall be consistent with data type. That means it has to be divisible by byte-size of the unit. Depending on data type, valid values are:
None - 0;
Unsigned 8 - 1, 2, 3, 4, ..., 65535;
Signed 8 - 1, 2, 3, 4, ..., 65535;
Octet String - 1, 2, 3, 4, ..., 65535;
Unsigned 16 - 2, 4, 6, 8, ..., 65534;
Signed 16 - 2, 4, 6, 8, ..., 65534;
Unsigned 32 - 4, 8, 12, 16, ..., 65532;
Signed 32 - 4, 8, 12, 16, ..., 65532;
Output Item description
Figure 76: Submodule output item text-ID and value
This sets additional information about the submodule's output DataItem.
Subslot Selection
Figure 77: Submodule Subslot input
Just as Module can be plugged in the software model to Slot, Submodule can be plugged into Subslot. This selection is optional - if no subslot is selected, the form will say "No Subslot selected".
The user can select Subslot for Submodule from existing ones, by using the Browse button (Figure 77 - the left one). This can be only done, when parent Module is plugged into Slot. Otherwise, information dialog will pop-up - see Figure 78. To remedy this situation, plug Module into some Slot.
Figure 78: Message dialog when selection Subslot fails
When parent module is plugged, Browse button will open simple list dialog with possible selection options. These are Subslots of Slot, parent Module is plugged into. To plug Submodule into Subslot, select its entry on the dialog's list and click OK. To unplug Submodule, select No Subslot option. As Submodule can be plugged only in one Subslot at the same time, only one option can be selected. To avoid being redundant, current selection is not available to choose from.
As already mentioned, no two Submodules can be put into the same Subslot simultaneously. Therefore, assigning Submodule to Subslot X, will result in unplugging Submodule that was plugged to Subslot X previously. The tool detects and warns user if this is about to happen - see Figure 79.
Figure 79: Dialog warning that subslot is already in use
The Create button - the right one on Figure 77, is a shortcut that allows to define a new Subslot and assign it to the Submodule at the same time.
Records
Figure 80: Submodule records input
Submodule can be a parent for number of Record Data Objects. The Record definition is made of two elements: Parameter and value.
On Submodule editor page, there is an Add New Record button (top of Figure). Below each Submodule Record is listed (if any are defined). Record entry is labeled with Parameter name and index.
To create new Record, click Add New Record button. It will open two-page wizard. First page, shown on Figure 81 is for selecting Parameter and set text-ID and a human-readable additional text. User can choose from any previously defined Parameters.
Figure 81: Create new Record Wizard
On the second page, visible on Figure , user can specify value of data Record. Value is dependent on data type and data length of the Parameter. Numeric values are automatically initialized to zero, and have to be specified as sequence separated by whitespaces. The Wizard will check if input conforms to data length and data type, and display error messages if not.
Figure 82: Create new Record Wizard: Record Value
After Record is defined it can be modified by using Edit button, next to its label (see Figure). Clicking on the button will re-launch wizard for selected Record.
Record can be removed from the model by using Remove button, next to its label (see Figure).
Module Info
Figure 83: Submodule module info input fields
Specifies the soft- and hardware release of the Submodule.
...
Create a new Module
User can have much more Modules in his/her Software Model than the three ones predefined in new project template. One can add new Module to the model by selecting Modules editor block and using Create Object tool ( ). Sonderzeichen fehlt
New object is defined using Wizard dialog. The wizard can have up to two pages: first one to specify Module properties and optional second one to select Slot.
Figure 84: Create Module Wizard
First page of the wizard is presented on Figure 84. Completing this page is needed to create the Module. The properties: name, ident. number and description are equivalent to these described in chapter 9.7.2. You have to at least provide valid name and address for the wizard to continue. Remember, that Module number must be unique.
After name and identification number are specified, the user is free to finish the wizard by clicking the Finish button. Optionally, he can proceed to the next page where Module can be assigned to existing Slot. The page is presented on Figure 85.
Figure 85: Create Module Wizard: Slot selection
Selecting Slot that is already used will result in warning message appearing on top of wizard page. If the user will decide to proceed with that selection, previous Slot assignment will be overridden.
Create a new Submodule
Submodules are fully contained in their parent Modules. Therefore, one has to use Module definition to create and remove them.
User is assisted through Submodule creation with New-Submodule-Wizard. The wizard has up to two pages. The first one allows the specification of basic properties and the second one allows the Subslot assignment. The second page is only displayed if Submodule's parent Module is plugged into Slot.
First page is shown on Figure 86. The attributes to specify are the same as described in the chapters 0-0. Minimal input required to proceed is to provide valid name and identification number for the new Submodule. Wizard automatically suggests the name to be the same as parent Module's, but user can change it for more descriptive one. Please remember that identification number has to be unique within Module to be accepted.
Figure 86: New Submodule Wizard
The optional second page is shown on Figure 87. If Submodule's parent is plugged into Slot, user can plug new Submodule into Subslot, by selecting an entry on the list. This step can be skipped.
Figure 87: New Submodule Wizard: Subslot selection
The wizard will warn if selected Subslot is already used by other Submodule. Because only one Submodule can be plugged into Subslot at the same time, the previous assignment has to be removed.
Slots
Slots are used to represent addresses within the device. In the initial PROFINET project, there are two example Slots defined. They can be modified or removed by the user.
The following section describes the different properties a user can set for slots.
Number
Figure 88: Slot number input
Identification number of the Slot. Must be unique. Value is a 16 bit unsigned integer. Value "0" is reserved as Device Access Point (DAP).
Slot's number is displayed as its label, usually in both hexadecimal and decimal (in parenthesis) format e.g "Slot 0x10(16)".
When changing number value, one can use his/her preferred format: decimal, octal (with 0 prefix) or hexadecimal (with 0x prefix). New value won't be accepted when previously mentioned constraints are not met - the red error sign will appear next to input field.
Description
Figure 89: Slot description input
Optional user text. Can be used to put comments about Slot.
ModuleSelection
Figure 90: Slot Module input
Specifies which Module (if any) is plugged into this Slot. If no Module is selected, the form will say "No Module selected".
The user can select Module for Slot from existing ones, by using the Browse button (Figure 90 - the left one). Clicking the button will open simple list dialog with possible selection options. To plug Module into Slot, select its entry on the dialog's list and click OK. To unplug Module, select No Module option. Only one Module can be plugged into Slot, so only one selection is possible. To avoid being redundant, current selection is not available to choose from.
As already mentioned, no two Modules can be put into the same Slot simultaneously. Therefore, assigning Module to Slot X, will result in unplugging Module that was plugged to Slot X previously. The tool detects and warns user if this is about to happen - see Figure 91.
Figure 91: Module already in use warning
The same effect of plugging Module into Slot, can also be achieved by using Create Connection tool ( ) on model blocks.
The Create button - the right one on Figure 90, is a shortcut that allows to define new Module and plug it to the Slot at the same time.
Subslots
Subslot is a child object for Slot. Each Slot must have at least one Subslot defined. One can browse Slot's children using tree view inside editor.
Figure 92: Fragment of editor page for Slots
From Slot's editor page, user is able to create new Subslots and remove existing ones.
Figure 93: Subslots management input
Use Add Subslot button (the left one on Figure 93) to create new Subslot and add it as child of current Slot. Clicking on button will launch Create Subslot Wizard.
Use Remove Submodules button (the right one on Figure 93) to remove Slot's Subslots. Clicking on button will open simple selection dialog with list. You can select more Subslots than one by having Shift key pressed while clicking on the entries. Sonderzeichen fehlt
Remember: Every Slot must have at least one Subslot. The tool will not allow to remove all Subslots of a Slot.
The following section describes the different properties a user can set for subslots.
Number
Figure 94: Subslot number input
Identification number of Subslot. Must be unique within Slot. Value is a 16 bit unsigned integer.
Subslot's number is displayed as its label, usually in both hexadecimal and decimal (in parenthesis) format e.g "Subslot 0x11(17)".
When changing number value, one can use his/her preferred format: decimal, octal (with 0 prefix) or hexadecimal (with 0x prefix). New value won't be accepted when previously mentioned constraints are not met - the red error sign will appear next to input field.
Description
Figure 95: Subslot description input
Optional user text. Can be used to write comments about Subslot.
Submodule Selection
Figure 96: Subslot Submodule input
Just as Module can be plugged in the software model to Slot, Submodule can be plugged into Subslot. This selection is optional - if no Submodule is selected, the form will say "No Submodule selected".
User can select Submodule for Subslot from existing ones, by using the Browse button (Figure 96 - the left one). This can be only done, when parent Slot has Module assigned. Otherwise, information dialog will pop-up - see Figure 97. To remedy this situation, plug some Module into parent Slot.
Figure 97: Message dialog when selecting Submodule fails
When parent Slot has Module plugged, Browse will open simple list dialog with possible selection options. These are Submodules of parent Slot's Module. To plug Submodule into Subslot, select its entry on the dialog's list and click OK. To unplug Submodule, select No Submodule option. As Submodule can be plugged only in one Subslot at the same time, only one option can be selected. To avoid being redundant, current selection is not available to choose from.
As already mentioned, no two Submodules can be put into the same Subslot simultaneously. Therefore, assigning Submodule to Subslot X, will result in unplugging Submodule that was plugged to Subslot X previously. The tool detects and warns user if this is about to happen - see Figure 98.
Figure 98: Warning when submodule is already in use
Create a new Slot
User can have much more Slots in his/her Software Model than the two ones predefined in new project template. One can add new Slot to the model by selecting Slots editor block and using Create Object tool ( ).
Sonderzeichen fehlt
New object is defined using Wizard dialog. The wizard can have up to two pages: first one to specify Slot properties and optional second one to select Module.
Figure 99: Create Slot Wizard
First page of the wizard is presented on Figure 99. Completing this page is needed to create the Slot. User has to at least provide valid Slot number to continue. Remember that Slot number must be unique.
After number is specified, the user is free to finish the wizard by clicking the Finish button. Optionally, he can proceed to the next page where Module can be assigned to Slot. The page is presented on Figure 100.
Figure 100: Create Slot Wizard: Module selection
Selecting Module that is already used will result in warning message appearing. If the user will decide to proceed with that selection, previous Slot assignment will be overridden.
Create a new Subslot
Subslots are fully contained in their parent Slots. Therefore, one has to use Slot definition to create and remove them.
User is assisted through Subslot creation with New-Subslot-Wizard. The wizard has up to two pages. First one, for specifying basic properties and second one, for Submodule assignment. The second page is only displayed if Subslot's parent has Module assigned.
First page is shown on Figure 101. User has to specify number for Subslot. Please remember that number has to be unique within Slot to be accepted.
Figure 101: New Subslot Wizard
The optional second page is shown on Figure 102. If Subslot's parent has Module assigned, user can plug Submodule into new Subslot. This step can be skipped.
Figure 102: New Subslot Wizard: Submodule selection
The wizard will warn if selected Submodule is already used by other Subslot. Because only one Submodule can be plugged into Subslot at the same time, the previous assignment has to be removed.
Parameters
Parameters are software model objects that can be used to parameterize Submodules and Record Data objects. List of all Parameters currently present in software model is available under Parameters editor block.
The following section gives an overview about settings for parameters.
Name
Figure 103: Parameter name input
Human-readable name of the Parameter. Maximum number of characters is 100.
Index
Figure 104: Parameter index input
Address of data represented by Parameter. Value is a 16 bit unsigned number.
Description
Figure 105: Parameter description input
Optional user text. Can be used to add comments about Parameter.
Data Type
Figure 106: Parameter data type input
Specifies data type of the Parameter. Possible options are:
None - no data;
Unsigned 8 - unsigned 8 bit integer number; values from 0 to 255; takes one byte;
Unsigned 16 - unsigned 16 bit integer number; values from 0 to 65535; takes two bytes;
Unsigned 32 - unsigned 32 bit integer number; values from 0 to 4294967295; takes four bytes;
Signed 8 - signed 8 bit integer number; values from -128 to 127; takes one byte;
Signed 16 - signed 16 bit integer number; values from -32768 to 32767; takes two bytes;
Signed 32 - signed 32 bit integer number; values from -2147483648 to 2147483647; takes four bytes;
Octet String - string of characters, each of them taking one byte;
Data type setting determines data unit. Data length determines how many units there are in the data.
Data Length
Figure 107: Parameter data length input
Specifies length of data in bytes. The value is a 16 bit unsigned integer. Shall be consistent with data type. That means it has to be divisible by byte-size of the unit. Depending on data type, valid values are:
None - 0;
Unsigned 8 - 1, 2, 3, 4, ..., 65535;
Signed 8 - 1, 2, 3, 4, ..., 65535;
Octet String - 1, 2, 3, 4, ..., 65535;
Unsigned 16 - 2, 4, 6, 8, ..., 65534;
Signed 16 - 2, 4, 6, 8, ..., 65534;
Unsigned 32 - 4, 8, 12, 16, ..., 65532;
Signed 32 - 4, 8, 12, 16, ..., 65532;
Create/Delete Parameters
New parameters can be created (and associated with Submodules) using Submodule editor page. Parameter creation is done with assistance of wizard.
Create New Parameter Wizard has only one page, shown on Figure 108. Page is used to specify Parameter properties. User has to at least provide valid name of new Parameter.
Figure 108: Create new Parameter Wizard
Parameter objects that are no longer used in any Submodules or Record Data objects, can be deleted from software model. This can be done either through editor or Outline.
On editor page for Parameters, user can select unwanted Parameter nodes and click Delete key. In Outline, Parameters can be removed using context menu - see Figure 109.
Figure 109: Deleting Parameter using Outline View
Channel diagnosis items
In this section user is able to create items for manufacturer-specific (extended) channel diagnosis used in GSDML as “ChannelDiagItems” and “ExtChannelDIagItems”. Initial project template for PROFINET comes with two ChannelDiagItems already defined (see Figure 110).
Figure 110: Overview of created channel diagnosis items
The following section describes the different properties a user can set for slots.
Name
Figure 111: ChannelDiagItem name input
Human-readable name of the ChannelDiagItem. Maximum 100 characters. Shall be concise, yet descriptive. Uniqueness is not enforced, but shall be avoided as potential source of confusion. The ErrorType of the ChannelDiagItem is shown in brackets in the overview, too.
Name of ChannelDiagItem is shown as its label in tree view.
The details-button reveals more specific properties.
Error Type
Figure 112: ChannelDiagItem error type input
Specifies attribute “ErrorType” of ChannelDiagItem. It has to be unique for all ChannelDiagItems (Range 0xF – 0x7FFF).
Name TextId
Figure 113: ChannelDiagItem name text-ID input
References name of the ChannelDiagItem.
Help Info
Figure 114: ChannelDiagItem help info input
Short description of the ChannelDiagItem.
Help TextId
Figure 115: ChannelDiagItem help text-ID input
References additional help info of the ChannelDiagItem.
Extended channel diagnosis items
Extended channel diagnosis items or in GSDML file known as “ExtChannelDiagItems” is a child object for ChannelDiagItems. One can browse ChannelDiagItem's children using tree view inside editor.
Figure 116: Fragment of editor page for ChannelDiagItem
From ChannelDiagItem's editor page, user is able to create new ExtChannelDiagItems and remove existing ones.
Figure 117: Add/Remove ExtChannelDiagItem
Use Add… button (the left one on Figure 117) to create new ExtChannelDiagItem and add it as child of current ChannelDiagItem.
Use Remove… button (the right one on Figure 117) to remove ChannelDiagItem's ExtChannelDiagItem. Clicking on button will open simple selection dialog with list. You can select more ExtChannelDiagItems than one by having Shift key pressed while clicking on the entries.
The following section describes the different properties a user can set for ExtChannelDiagItems.
Error Type
Figure 118: ExtChannelDiagItem error type input
Defines Attribute: “ErrorType” of ExtChannelDiagItem. It has to be unique for all ExtChannelDiagItems of its parent ChannelDiagItem. (Range: 0x1 – 0x7FFF)
Name
Figure 119: ExtChannelDiagItem name input
Specifies name of the ExtChannelDiagItem which is shown as its label in tree view.
Name TextId
Figure 120: ExtChannelDIagItem name text-ID input
References name of the ExtChannelDiagItem.
Help Info
Figure 121: ExtChannelDiagItem help info input
Short description of the ExtChannelDiagItem.
Help TextId
Figure 122: ExtChannelDIagItem help text-ID input
References additional help info of the ExtChannelDiagItem.
DataItems
Figure 123: ExtChannelDiagIgtem dataItem input
ExtChannelDiagItem can be a parent for number of DataItem Objects. The DataItem definition is made of two elements: ID and DataType.
On ExtChannelDiagItem editor page, there is an Add New DataItem button (top of Figure). Below each ExtChannelDiagItem DataItem is listed (if any are defined). DataItem entry is labeled with ID and dataType.
To create new DataItem, click Add New DataItem button. It will open one-page wizard. This page, shown on Figure 124 is for selecting ID and datatype. The maximum of dataItems of one ExtChannelDiagItem is 4 bytes. The Communication Creator will inform you if this will be violated.
Figure 124: Page of create new dataItem wizard
Graphics
Graphics hold information about symbolic representation of DAPs, modules or submodules. They can be created through the Add new GraphicItem button or deleted by remove button.
Figure 125: Overview of all created graphics
Note: The Communication Creator supports only graphic selection for DAPs.
The following section describes the different properties a user can set for GraphicItems.
ID
Figure 126: GraphicItem ID input and file preview
Specifies ID of the graphic for referencing purposes. In the overview of all graphics there is a preview of the selected graphic file, too.
The details-button reveals more specific properties.
Type
Figure 127: GraphicItem image type selection
Specifies type of the graphic. It can be “DeviceSymbol” (graphic file is bitmap with maximum 70x40 pixels (width x height), 16 colors) or “DeviceIcon” (graphic file is in icon format). User will be informed if graphic file is out of width or height limitations.
Graphic file and preview
Figure 128: Graphic file selection and preview
With the browse button user can select a .gif / .jpg / .png /.ico or .bmp file which will be shown in the preview with its width and length. To deselect a graphic file user can click on clear button. If the graphic file is out of width or height limitations there will be thrown an error by the Communication Creator.
...
Settings reference
A detailed reference of all available settings for port PROFINET IO stack can be found in the online help of the Communication Creator. Please open the help system via menu “Help” à “Help contents”. Then select “port PROFINET Tool User Guide” à “Settings Reference”.
...
...
Create/Delete connection between Slots and
...
Modules
If there shall be a connection between a slot and a module follow these steps (see Figure 129):
...
Open Modules or Slot Page from top view of the Communication Creator
Click on “create connection”-button () Sonderzeichen fehlt
Click on a slot- and a module-block you want to connect
(optional) click on the subslot of the connected slot and select a submodule (selectable submodules depend on connected module; Default: first submodule is plugged to first subslot)
Save the project