Profinet¶
Overview¶
Profinet (usually styled as PROFINET, as a portmanteau for Process Field Net) is an industry technical standard for data communication over Industrial Ethernet, designed for collecting data from, and controlling equipment in industrial systems, with a particular strength in delivering data under tight time constraints.
This protocol is optional and subject to license. It should be installed on demand.
Connection Properties¶
localInterface
(string, required)¶
Name of the interface providing cyclic profinet data
Example: "eth0"
gsdPath
(string)¶
Path to a directory containing GSD files
Default: "/app/src/protocols/profinet/gsd"
Example: "/app/src/protocols/profinet/gsd"
configPath
(string)¶
Path to a directory containing config files
Default: "/app/src/protocols/profinet/config"
Example: "/app/src/protocols/profinet/config"
connectionStrategy
(object)¶
If a connection attempt fails, retries will be performed with increasing delay (waiting time) in between. The following parameters control how these delays behave.
Properties of the connectionStrategy
object:
initialDelay
(integer)¶
Delay (waiting time) of the first connection retry (in milliseconds). For subsequent retries, the delay will be increased according to the parameter incrementFactor which has a default value of 2.
Default: 1000
Additional restrictions:
Minimum:
1000
maxDelay
(integer)¶
Maximum delay (waiting time) to wait until the next retry (in milliseconds). The delay (waiting time) for any subsequent connection retry will not be larger than this value. Must be strictly greater than initialDelay.
Default: 30000
incrementFactor
(integer)¶
The factor used to increment initialDelay up to maxDelay. For example if initialDelay is set to 1000 and maxDelay to 5000 the values for the delay would be 1000, 2000, 4000, 5000.
Default: 2
Additional restrictions:
Minimum:
2
Endpoint Properties¶
api
(integer, required)¶
Integer number describing identifying the application process
Default: 0
Example: 0
propertyName
(string)¶
Name of the property to read as defined in the GSD file
Example: "actual value"
Sample commissioning file¶
Download: profinet-example.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | --- description: > Sample Profinet commissioning file metadata: name: Profinet example icon: https://www.cybus.io/wp-content/uploads/2017/10/for-whom1.svg provider: cybus homepage: https://www.cybus.io version: 1.0.0 resources: profinetConnection: type: Cybus::Connection properties: protocol: Profinet connection: localInterface: 'eth0' gsdPath: '/app/gsd-files' # These paths are referenced between the container configPath: '/app/profinet-config' connectionStrategy: initialDelay: 1000 maxDelay: 30000 incrementFactor: 2 endpoint1: type: Cybus::Endpoint properties: protocol: Profinet connection: !ref profinetConnection subscribe: deviceName: 'netx52repns' api: 0 slot: 0 subSlot: 0 propertyIndex: 0 mapping: type: Cybus::Mapping properties: mappings: - subscribe: endpoint: !ref endpoint1 publish: topic: 'netx52rens_output' |
Output Format¶
The data will be written as a JSON object with a timestamp and a data member called value.
For example for the endpoint endpoint1, the output will be:
{
"timestamp": 1581932492902,
"value": [0, 1, 0, 0]
}