Driver Revision History

<< Click to Display Table of Contents >>

 

Driver Revision History

Version

Date

Author

Comments

4.0.20

04/11/2024

F. Englert

M. Salvador

Created an independent version for protocol IEC 870-5-104 in Master and Slave modes. The Driver from protocol IEC 870-5-101 is still supported in version 3.0 (101/104).

3.0.4

08/27/2019

M. Ludwig

Driver ported to Visual Studio 2017 (Case 27164).

3.0.1

06/20/2017

F.Englert

Removed protocols 102, ZIV, and Procome, now handled by specific Drivers (Case 22924).

Changed the name of this Driver to IEC870-101-104.dll, which now uses the protection ID of Power Drivers and the license is interchangeable with other Drivers from the same group (Case 13800).

2.22.80

05/22/2017

F.Englert

Implemented the Disconnect if General Interrogation returns empty results option (Case 22256).

2.22.77

05/11/2017

F. Englert

Implemented the Enable Callbacks option also for Slave protocols IEC 870-5-101 Balanced, IEC 870-5-101 Unbalanced, and IEC 870-5-104 (Case 22652).

Analog Commands SEn, SEs, and SEf of Select/Execute with qualifiers ShortPulse, LongPulse, and PersistentOutput are now sent correctly (Case 22662).

2.22.76

04/12/2017

F. Englert

This Driver now supports the IP Filter option, which allows indicating from which TCP/IP addresses this Driver accepts or rejects connections (Case 22540).

2.22.75

10/17/2016

F. Englert

Added two properties in this Driver to configure timezones, in minutes, from Master and Slave Stations from which this Driver communicates. This Driver converts the computer's local timestamps to the Station's timezone and viceversa (Case 21621).

2.22.74

09/30/2016

F. Englert

The Block Tag for receiving SD, DC, and RC Commands from this Driver in Slave IEC 870-5-101 mode and IEC 870-5-104 now returns an array of Variants instead of an array of integers, allowing the manipulation in scripts of an application (Case 21588).

2.22.72

09/01/2016

F. Englert

Updated documentation with implementations from version 2.22, only in Portuguese (Case 21167).

2.22.70

08/18/2016

F. Englert

The properties window was redesigned. The Properties tab now shows all configuration properties. The Stations tab was moved into the IEC870 tab (Case 21385).

2.22.63

03/30/2016

F. Englert

Added a property to configure the Originator Address that comes with all ASDUs sent by this Driver, if the number of octets of the Cause of Transmission is configured with value two (Case 21126).

2.22.61

03/17/2016

F. Englert

When receiving a packet with a repeated FCB bit, this Driver in Slave mode now correctly resends ACK or NACK packets (Case 20685, caused on v2.18).

2.22.60

02/11/2016

F. Englert

This Driver now correctly marks as LinkActive the Stations from protocol IEC 870-5-101 Unbalanced Master after the correct initialization (Case 20531).

This Driver in Master mode of protocol IEC 870-5-101 Balanced now responds immediately to RESET_LINK Commands sent by a Slave, hence the initialization is faster (Case 20533).

2.22.59

02/04/2016

F. Englert

Removed the Respond using option of protocol IEC 870-5-101 Unbalanced in Slave mode (Case 20515).

2.22.58

02/03/2016

F. Englert

Implemented the Procome protocol (Case 19889).

2.22.55

12/04/2015

F. Englert

Added an option to control using the SU flag (summer time), Timestamp SU Flag (Summertime adjustment) (Case 20163).

2.22.54

11/21/2014

F. Englert

This Driver now stores on log, near the number of a Cause of Transmission, its meaning (Case 17694).

This Driver in Slave mode now supports two data intervals for cyclic sending (Case 17708).

2.22.53

11/13/2014

F. Englert

This Driver in Master mode does not occupy 100% of CPU if the Slave Polling Rate option is configured as zero (Case 15377).

2.22.52

10/29/2014

F. Englert

This Driver in Slave mode of protocols IEC 870-5-101 and IEC 870-5-104 now discard data from pending General Interrogations (Case 17626).

Improved answers from this Driver in Slave mode and General Interrogation requests with invalid or unsupported COT (Cause of Transmission) or IOA (Information Object Address) (Case 17629).

2.22.51

10/28/2014

F. Englert

Fixed a GPF that occurred in this Driver in Slave mode of protocols IEC 870-5-104 or IEC 870-5-101 Balanced right after responding a General Interrogation (Case 17643, caused on v2.22.50).

2.22.50

10/23/2014

F. Englert

Created two new configuration parameters to define whether this Driver can send Class 1 (one) data in Class 2 (two) requests, if there is no Class 2 (two) data to send, and viceversa (Case 17608).

2.22.46

05/23/2013

F. Englert

This Driver in Slave mode now supports sending cyclic data in the Cyclic Data Transmission: Object Range and Cyclic Data Transmission: Send Period (ms) options of the Properties tab (Case 13952).

Implemented support for callbacks in this Driver in Master mode in the Enable Callbacks option of the Properties tab (Case 9178).

2.22.45

04/03/2013

F. Englert

Fixed a problem when handling packets of this Driver in Slave mode of protocol IEC 870-5-101 Balanced, which could incorrectly discard a response from the Master, if it sends a new request before sending a response (Case 13942).

2.22.44

03/22/2013

F. Englert

Fixed the packing of ASDUs 5 (five), 7 (seven), 13, 15, and 21, which could be sent using a sequence of objects, option not supported by the protocol's standard (Case 13898, caused on v2.22.34).

2.22.43

02/26/2013

F. Englert

Fixed a problem when handling packets, which could reuse old packets received before the last disconnection, leaving this Driver continually disconnecting and reconnecting. Also improved the process of forced disconnection or reconnection when detecting any sequence error in the packets (Case 13808).

2.22.41

11/07/2012

F. Englert

Fixed a memory leak that occurred whenever this Driver received data and placed it on the internal cache memory (Case 13454, caused on v2.22.34).

2.22.37

02/15/2012

F. Englert

Added an option Send EI (End Of Initialization) When Connected to the Properties tab of this Driver's properties window in Slave mode, which allows configuring whether it sends an EI (End of Initialization) Command when a Master connects (Case 12761).

2.22.36

11/18/2011

F. Englert

This Driver in Slave mode of protocol IEC 870-5-104 now sends ASDU 70 (M_EI_NA_1) when communication starts (Case 12575).

Bits BL and OV are now mapped in the quality's Limit field, that is, the two least significant bits (Case 12569).

2.22.35

05/13/2011

F. Englert

Created a new option on the Properties tab of Master protocols, Don't wait ACTTERM for Execute commands (Case 12229).

2.22.34

04/18/2011

F. Englert

Fixed the packing of some data types that were not allowing send data in blocks (Case 12161).

This Driver in Slave mode now allows users to configure a dead band for sending analog values in the Analog Deadband (% of previous value) option of the Properties tab (Case 12109).

2.22.33

02/11/2011

F. Englert

This Driver in Master mode of protocol IEC 870-5-101 Balanced responded the DIR bit with value 0 (zero) in the RESPOND_STATUS message, when it should respond the DIR bit with value 1 (one). Added the DIR (Physical Transmission Direction) option, which controls the behavior of the DIR bit in the packet of protocol IEC 870-5-101 Balanced, both in Master mode and in Slave mode (Case 10174).

Fixed the Cause of Transmission used by this Driver in Slave mode of protocol IEC 870-5-101 when returning data from Commands, such as an answer for a General Interrogation, for Class one (Case 12057).

Protocols IEC 870-5-101 Balanced and Unbalanced of this Driver in Slave mode now support the Delay Acquisition Command (C_CD_NA_1, ASDU 106) (Case 12058).

This Driver in Master mode now allows enabling sending a Test Command whenever the application layer remains n seconds without receiving a message from a Slave. Also removed Tag N2 equal to 1104, which sent a Test Command whenever that Tag was read (Case 12042).

2.22.32

02/08/2011

F. Englert

This Driver, both in Master and in Slave mode, now forces a disconnection if they do not receive a TESTDTcon as a response to a TESTDT act (Case 12043).

Added a Treat First Write As option on the Properties tab of this Driver's configuration window in Slave mode (Case 12045).

2.22.31

01/18/2011

F. Englert

Added a new option Link Layer Starts on the Properties tab of this Driver's configuration window, which allows defining the initial status of the link layer, enabled or disabled (Case 12023).

2.22.30

12/09/2010

F. Englert

This Driver, when in Master mode, now forces a reconnection if receiving a confirmation, positive or negative, of a General Interrogation failure (Case 11931).

2.22.29

12/08/2010

F. Englert

This Driver now handles graciously timestamps greater than year 2035. When detecting an invalid timestamp, converts it to local date and time and enables the IV flag of timestamp's quality (Case 11855).

This Driver now groups values with different timestamp format but the same data type, eliminating the need for clients do explicitly declare the timestamp format of a Tag. The Remove timestamp from received data option was removed, because this operation is performed automatically.

Implemented the option of local overriding in this Driver's Tags in Slave mode (Case 11662).

Added the Analog Values Send Interval (ms) option to control the frequency of sending analog values by this Driver in Slave mode (Case 11732).

Added a new property to this Driver, IEC.MaxPacketSize, which allows configuring the maximum size of packets assembled by this Driver, both in Master and in Slave mode (Case 11731).

2.22.27

08/13/2010

F. Englert

This Driver in Slave mode now handles correctly Clock Syncing Commands sent by a Master, according to the handle profile configured in the properties (Case 11660).

This Driver now reports the value of the SB flag (substituted) in the OPC quality of Tags (Case 11661).

2.22.26

08/05/2010

F. Englert

The Read Slave Statistics Tag is not updating values in any of the options available for configuration, with this Driver configured in Slave Unbalanced mode (Case 11623).

2.22.25

08/04/2010

F. Englert

Added a new option Common Address of ASDU on the Field sizes (in octets) group of this Driver's properties window, which allows configuring a number of octets of the Common Address of ASDU option different from the Slave Address (Case 11634).

2.22.23

08/18/2009

F. Englert

When the number of octets of a Cause of Transmission was 2 (two), this Driver considered the second octet a part of that Cause of Transmission, but in fact that octet is the Originator Address. Now, this Driver discards the Originator Address in the received packets. When transmitting, this Driver always sends 0 (zero) in the Originator Address (Case 10723).

Now the configuration of this Driver is performed only on one tab, IEC870. On this tab, according to the selected protocol, two other specific sub-tabs are displayed, General, Master or Slave, Properties, and Stations (Case 10643).

2.22.22

08/07/2009

F. Englert

This Driver in Slave mode now takes advantage of bandwidth, grouping in the same packet several unsolicited events to send them to a Master (Case 10702).

2.22.21

08/03/2009

F. Englert

Now users can inform the address of objects with 3 (three) octets using parameters in String format in the ParamItem property (Case 9396).

2.22.20

06/29/2009

F. Englert

Fixed the handling of reconnection operations in this Driver in Master mode of protocol IEC 870-5-104 in cases when a really fast disconnection and a reconnection occurred (Case 8039).

Added a new Properties tab to this Driver. This tab allows editing, as a list, the properties of each protocol, previously available on the IEC tab, as well as the properties T0, T1, T2, T3, K, and W of protocol IEC 870-5-104 (Case 10608).

2.22.19

05/19/2009

F. Englert

This Driver now performs a disconnection from the physical layer if the Slave stops responding (Case 10126).

2.22.18

10/14/2008

F. Englert

This Driver now forces a disconnection from the physical layer when receives a malformed or out-of-order packet (Case 10040).

2.22.16

03/12/2008

F. Englert

This Driver in Master mode now returns automatically a General Interrogation if it receives and indication of General Interrogation ending, that is, cot equal to 10, there is no active General Interrogation, and the last General Interrogation failed (Case 9260).

2.22.15

03/10/2008

F. Englert

Created a new function (N2) to read data from this Driver's cache memory (Case 9166).

2.22.14

02/19/2008

F. Englert

Added a new option on the Commands tab of this Driver, available only for Master mode, Process data only at GI end (Case 9165).

2.22.13

11/08/2007

F. Englert

Fixed the behavior of Read Interrogation Group Command in this Driver in Master mode (Case 8402).

This Driver in Slave mode now allows configuring buffers to store Class 1 (one) and Class 2 (two) events while the Master is disconnected (Case 7658).

Implemented a new Stations tab on this Driver's configuration window. This tab allows users to configure whether this Driver creates Stations automatically, the old mode, or restricts communication to user-declared Stations, the new mode (Case 7687).

Now this Driver in Master mode of protocol IEC 870-5-104 uses the Wait M_EI_NA on activation option to control the behavior when waiting for STARTDT.CON (Case 8963).

2.22.12

06/19/2007

F. Englert

Fixed the handling of FCB bit, which was incremented before knowing whether a packet was successfully sent or not (Case 8405).

Fixed the handling of Read Interrogation Group Commands in this Driver in Slave mode (Case 8406).

Implemented a discard of invalid messages. If a RESPOND_NACK is received as a response to a SEND/CONFIRM, it is discarded and this Driver keeps waiting for a CONFIRM_ACK or CONFIRM_NACK (Case 8151).

Added a new option on the Commands tab to allow waiting or not by an ACTTEM from General Interrogation, Wait ACTTERM (Case 8401).

2.22.11

04/13/2007

F. Englert

Now writings to Tag N2 equal to 1102 only return error when communication fails. If a device returns an error code, writing is considered successful and the error code returns on the writing status (Case 8018).

2.22.10

04/13/2007

F. Englert

Fixed the behavior of this Driver in Slave mode, which was ignoring the quality of received data from an application and sending to the Master always with a Good quality (Case 8111).

Added a new Tag N2 equal to 6 (six) in this Driver in Slave mode, which allows spontaneously sending data with Class 1 (one) and also in General Interrogation, if configured (Case 7653).

2.22.8

03/23/2007

F. Englert

Fixed the behavior of timer T2 in protocol IEC 870-5-104, which could lead this Driver to exceed the maximum time for sending an ACK packet, that is, 10 seconds (Case 8038).

2.22.7

03/06/2007

F. Englert

Fixed the format of parameter N2 equal to 99, which was returning a date in Double format from Elipse SCADA (Case 7954).

Added to the Commands tab a list that allows selecting the way this Driver in Slave mode handles Select and Execute Commands, default (pass to application) (Case 5963).

2.22.6

02/16/2007

F. Englert

Fixed the Common Slave Address of packets sent by this Driver in Slave mode during a General Interrogation, if users have configured a pre-defined list of points to return (Case 7940).

Added a new group of controls on the Commands tab to configure automatically sending Clock Syncing Commands, Auto-run clock synchronization and Repeat every (sec) (Case 7509).

Implemented support for ASDU 105 (C_RP_NA_1, Reset process command) both on Master mode and on Slave mode of protocols IEC 870-5-101 and IEC 870-5-104 (Case 7836).

2.22.3

01/10/2007

F. Englert

Fixed the maximum size of packets of protocol IEC 870-5-104, which allowed generating packets with up to four more bytes than expected, provoking communication problems (Case 7798).

This Driver is now protected by ID 31290 (Case 7797).

Now quality changes to 216 when generating a timestamp. This only occurs if quality before was Good (192). If quality's value was any value different from 192, it does not change (Case 6569).

2.22.1

09/28/2006

F. Englert

Fixed the handling of double points received with an invalid value, 00b or 11b, which were discarded if configured to handle double points as a Boolean value (Case 7423).

Changed the handling of double points with invalid values (Case 6571).

2.21.1

08/18/2006

F. Englert

Fixed the FCB bit sent in this Driver's packets in Master mode of protocols IEC 870-5-101 and 102, which was sent inverted (Case 7286).

2.20.1

08/11/2006

F. Englert

Fixed the example script for handling Commands received by a Slave, which did not work (Case 5452).

Now the log registers events discarded when the internal cache memory is full, that is, more than 100 events for a single object (Case 6563).

Fixed an incorrect timestamp (zero) sent when using data types from protocol IEC 870-5-104 in Slave mode (Case 6564).

Fixed the Slave polling rate parameter, which has no effect when communicating with a Slave (Case 6570).

Fixed the receiving of data with a timestamp marked as invalid (IV equal to one), and data itself was marked as invalid and only the timestamp should be discarded (Case 6666).

Master and Slave modes were extensively tested and performed small improvements (Case 6798).

Fixed the usage of a fixed one-second time-out, instead of using the time configured in the App Layer Timeout option, when users must send a Command and the application layer is busy, such as when using a General Interrogation, leading to a Command failure (Case 6848).

Fixed the timestamps sent or received, which could be incorrect with a one-millisecond difference when received or sent by an application. This fix only works together with E3 v2.5 Build 131 and IOKit v1.13 (Case 7256).

Added support for Command ASDUs 48 (C_SE_NA_1), 49 (C_SE_NB_1), 50 (C_SE_NC_1), and 51 (C_BO_NA_1) (Case 5361).

Added support for protocol IEC 870-5-104 in Slave mode. Added Commands for ASDUs 58 (C_SC_TA_1), 59 (C_DC_TA_1), 60 (C_RC_TA_1), 61 (C_SE_TA_1), 62 (C_SE_TB_1), 63 (C_SE_TC_1), and 64 (C_BO_TA_1). Also added support for Test Command using ASDU 107 (C_TS_TA_1) (Case 5506).

Implemented updates in protocol ZIV (Case 5846).

Changed the reading of VTCD adjustments to adapt to the new format defined in protocol ZIV (Case 6561).

Added the Modify the timestamp on received values option on the Interrogation tab (Case 6562).

Added support for Clock Syncing Commands (ASDU 103 or C_CS_NA_1) in protocols IEC 870-5-101 and IEC 870-5-104 in Slave mode. Also added the Commands tab (Case 6826).

Added support for protocol IEC 870-5-104 in Master mode (Case 7259).

2.19.1

01/17/2005

F. Englert

Added an option to use a Common Address different from Link Address (Case 4364).

Fixed a situation where Slave addresses greater than 127 were not supported when configured to use an octet for the Slave address, which should allow addresses between 0 (zero) and 255 (Case 4766).

Fixed a situation of not acknowledging CC1 packets received as ACK packets (Case 5210).

Fixed a situation in which data types of protocol IEC 870-5-104 were returning their timestamp as the value of the Tag (Case 5211).

Fixed the block of protocol ZIV, Read Configuration Block 2, with parameter B2 equal to 1141, which was not working (Case 5212).

Now IOKit v1.08 is used, with support for turning on and off the runtime log.

2.18.1

07/28/2004

F. Englert

Fixed a situation in which data from a General Interrogation was not sent in Blocks in Master mode of protocol Unbalanced (Case 4238).

Fixed a situation in which, only in Slave mode, the last packet was not resent when the Master sent a packet with the same previous FCB (Case 4276).

Added an option to select the type of response to send when receiving a request from the Master, Respond with (Case 3741).

Data types defined in protocol IEC 870-5-104 are now available on the list of pre-defined points returned in the General Interrogation (Case 4035).

2.17.1

06/09/2004

F. Englert

Added retries in link layer (Case 3937).

2.16.1

05/04/2004

F. Englert

Changed the default value of application's time-out, from 4000 to 4 (four) seconds.

Added the Add timestamp to interrogation data option (Case 3608).

Added an option to allow handling DIQ, DCO, RCO, and SEP data as Boolean values (Case 3609).

2.15.1

04/01/2004

F. Englert

Added the Remove timestamp from interrogation data option (Case 3506).

Added support for data types of protocol IEC 870-5-104 encapsulated in protocol IEC 870-5-101. Protocol IEC 870-5-104 IS NOT supported (Case 3419).

Documentation translated to Portuguese (Case 3568).

2.14.1

02/20/2004

F. Englert

Timestamps sent are incorrect, that is, the computer's current time is always used (Case 3385).

2.13.1

01/29/2004

F. Englert

Double Point Commands (DCO) and Simple Events for Protection Devices (SEP) now use the possible statuses, Intermediate or 0 (zero), OFF or 1 (one), ON or 2 (two), and Undetermined or 3 (three), instead of a Boolean value indicating an On or Off status (Case 3214).

This Driver is not responding to Test Link Commands, function 2 (two) of protocol IEC, received in Slave or Balanced mode (Case 3231).

Added an Interrogation option, which allows configuring a list of objects returned in a General Interrogation, only in Slave mode (Case 3284).

Added a TEST LINK Tag only in Slave or Balanced mode. This Tag sends a Test Command from the link to the Master, returning the value one if the Master responds (Case 3285).

Fixed a problem in which this Driver in Slave or Balanced mode sometimes locked when receiving a message from a Master while trying to send another message to the same Master (Case 3286).

2.12.1

01/08/2004

F. Englert

Double point data (M_DP_NA_1 and M_DP_TA_1) now return possible statuses, Intermediate or 0 (zero), OFF or 1 (one), ON or 2 (two), and Undetermined or 3 (three), instead of a Boolean value indicating an On or Off status (Case 3214).

Added an option to enable or disable using the CC1 frame instead of the ACK frame when sending Acknowledgment Messages on the link layer in Balanced mode (Case 3215).

2.11.1

12/19/2003

F. Englert

Added handling Commands sent by a Master in Slave mode (Case 3211).

2.10.1

12/18/2003

F. Englert

Implemented protocol IEC 870-5-101 Slave in Balanced mode (Case 195).

2.9.1

12/02/2003

F. Englert

This Driver in Slave mode is not created anymore when in Offline mode (Case 3039).

2.8.1

11/27/2003

F. Englert

Implemented protocol IEC 870-5-101 in Slave mode (Case 195).

2.7.1

11/18/2003

F. Englert

Listening mode is now working correctly, because values received in listening mode were not returned (Case 2960).

2.6.1

11/13/2003

F. Englert

Errors in Tag quality are now reported if the connection is lost while in listening mode (Case 2935).

2.5.1

11/07/2003

F. Englert

Added a quality field to the mass memory reading, in parameter B2 equal to 1189 or 1190 (Case 2893).

2.4.1

11/05/2003

F. Englert

Added Tag Read MAE ID, with parameter N2 equal to 1212 for this Driver in Slave mode of protocol ZIV.

2.3.1

09/29/2003

F. Englert

Improved the message log in application level.

2.2.1

08/11/2003

F. Englert

Added the documentation for extensions of protocol ZIV.

2.1.1

07/29/2002

F. Englert

Driver ported to IOKit.

Implemented protocols 102 and 102 ZIV Extensions.