[JSup] I/O system is organizes in channels that group [IOHook|tag I/O hooks] and defines the way they are read/written.
Every channel is bound to a [JSup Drivers|driver] and to a driver specific a device.
Some features:
- Channels can perform timed or triggered read or event unsolicited read (according to the protocol/driver capabilities).
- Channel read can be [JSup graphic windows#Requested data|requested by a window]].
- Writes can be triggered and/or done on tag change.
Channels are comparable with FactoryLink I/O tables.
The [JSup Channel list|Channel list] can be accessed with the menu Tools / Edit channels (or Ctrl+H keys).
Channel configuration
- The [JSup Drivers|I/O driver] that the channel has to use for its communication, it cannot be changed once the channel is created.
- Name: an [JSup unique names|unique name] that will identify the channel.
- Drive dependent info: a button that open a driver specific dialog that provide configuration about the device and driver specific configuration of the channel.
- Item prefix: a fixed text that will be prepended to every item of the channel [IOHook|I/O hooks], this can be useful for some drivers ([JSup SNMP driver|SNMP] or [MQTT JSup driver|MQTT]) to not to have to include a fixed prefix to every [IOHook|I/O hook].
- Channel active condition: can be a constant or calculated expression that enable / disable the channel at all if, for example, a channel have to be active only on a certain JSup server or if you want to disable a channel at all but you don't want to delete it.
- Block read: a block read requesta all [IOHook|I/O hooks] value (except for write only [IOHook|I/O hooks]) from the remote device, when the Block read trigger [JSup Math code|expression] changes to a non false (or 0) value.
The Block read trigger is normally a single [JSup tag|tag] forced to true (or 1) to perform the read. The End read tag, if specified, is a [JSup tag|tag] that will be forced to true if all the [IOHook|I/O hooks] have been read successfully, or forced to false if the block read is not successful (even if [IOHook|I/O hooks] are partially read: some read and some not). This tag will receive also the status of a Continuous read completion.
- Continuous read: a timed basis read that can be enabled with a constant or variable expression (Read enable condition) and repeated at a given millisecond rate (Update time: constant or an [JSup Math code|expression]). Some [JSup Drivers|driver] enable the possibility to read only active items, the [IOHook|I/O hooks] of listened tags (the ones those are displayed in active [JSup Window property dialog|window]). Active [JSup Window property dialog|windows] can specify the read of one (or more) channels and the requested rate: the shorted rate will be used.
- Block write: all the [IOHook|I/O hooks] of the channel (except the read only ones) can be written at once when the Block write trigger [JSup Math code|expression] (normally a single boolean tag) changes to a true (or non zero) value.
The End write tag, if specified, will be forced to true if all the [IOHook|I/O hook] values have been written successfully, or to a false value in case of some write failure.
- Write on change can be enabled to perform single write for every [IOHook|I/O hook] whose tag change value (or whose value is forced). The Write on change disable can be configured with an [JSup Math code|expression] (normally a single [JSup tag|tag]) that when non false disable the write on tag changes. This can be useful if a massive tag change is expected and you what to write all tag at once with a Block write.
- Poor quality to tag filter: is the time after a bad [IOHook|I/O hook] value read after which the tag will be set in a poor [JSup tag quality|quality] status.
- Alarm only: a flag for [JSup Importing tags from Schneider Unity|Unity] import feature only.
- Auto I/O hook JavaCode fun.: see [JavaCode function provided IOHooks].
|