Channels (Bozza)

[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

/img/JSup/iochannel_edit.png

  • 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].