Skip to content

Releases: jisotalo/ads-client

v.2.1.0

27 Jan 18:54
06fb33d
Compare
Choose a tag to compare

[2.1.0] - 27.01.2025

Added

  • New method readTcSystemExtendedState()
  • Improved detection of TwinCAT system service restart
    • Available if remote system supports readTcSystemExtendedState()
    • Tested with TwinCAT 3.1.4022, 3.1.4024 and 3.1.4026
    • Client detects a restart of TwinCAT system and reconnects to re-establish subscriptions
    • See issue issue #159
  • Added tests for subscription persistence during TwinCAT system restart

Changed

  • Changed activeSubscriptions property visibility from private to public
  • disconnect event is no longer emitted continuously each reconnect attempt (only during the initial disconnect / connection lost event)
  • disconnect event parameter isReconnecting changed to connectionLost
  • TwinCAT system state type (metaData.tcSystemState) changed from AdsState to AdsTcSystemState
    • Not a breaking change - the new type extends AdsState

v.2.0.2

14 Dec 12:04
Compare
Choose a tag to compare

[2.0.2] - 14.12.2024

IMPORTANT: This is a major version update. There are lots of breaking changes!

Updating v1 -> v2 requires manual changes to your codebase!

See MIGRATION.md for all breaking changes and follow the instructions.

Special thanks

Changes

  • v.2.01 & v.2.02: Readme fixes - messed up with the links
  • Everything rewritten in TypeScript
  • Everything is tested before releasing
  • Lots of optimizations
  • Lots of name changes
  • New methods: resetPlc(), readWriteRawMulti(), writeRawByPath(), readValueBySymbol(), writeValueBySymbol()
  • New setting disableCaching: disables all symbol and data type caching
  • Added optional targetOpts argument in all methods
    • Possible to provide different target address (AmsNetId and/or AdsPort) than specified in the settings
    • Caching is only available for the original target provided in settings
    • The same client can be used for many different targets at the same time
  • Added support for reading/writing INTERFACE data types
  • Added support for reading/writing empty FUNCTION_BLOCKs
  • Added support for reading/writing BIT data type
  • Writing a STRING or WSTRING value that is longer than the target data type causes the string to be truncated.
    • Previously the string end character was lost, which caused "never ending string" and <Value of the expression cannot be retrieved in PLC online view.
    • E.g. writing 85 bytes of string to STRING(80) variable
  • BOOL and BIT data values are now true if the value is anything else than 0
    • In TwinCAT, BOOL is true if the value is anything else than zero (see x_TO_BOOL)
    • Before, ads-client set the value to true only if value was true or 1, otherwise it was 0
  • writeControl() accepts also string values for adsState
  • Added support for UTF-8 encoded ADS symols
    • Required for TwinCAT 3.1.4026 support
    • Required for TwinCAT 3.1.4022/3.1.4024 with UTF-8 Encoding checked under TwinCAT XAE -> SYSTEM -> Settings -> ADS Symbolic.
  • Added new metaData.adsSymbolsUseUtf8
    • Set true if target system is using UTF-8 for ADS symbol encoding
  • Added new setting forceUtf8ForAdsSymbols (default: false)
    • If set, client always handles ADS symbols as UTF-8 encoded
    • Otherwise tries to detect the encoding or fallbacks to cp1252
  • readPlcUploadInfo() updated to support new version 3 upload info (inc. ADS symbol encoding info)
    • Also added support for old version 1 upload info (perhaps old TC2 devices..?)
  • New method sendAdsCommandWithFallback()
    • Calls sendAdsCommand() with a specific command. If it fails to certain ADS errors, tries the fallback command.
  • Added test suites for TwinCAT 2
  • Added warning event to listen for console warnings

2.0.0-beta.5

25 Nov 19:36
Compare
Choose a tag to compare
2.0.0-beta.5 Pre-release
Pre-release

[2.0.0-beta.5] - 25.11.2024

  • Added support for UTF-8 encoded ADS symbols
    • Required for TwinCAT 3.1.4026 support
    • Required for TwinCAT 3.1.4022/3.1.4024 with UTF-8 Encoding checked under TwinCAT XAE -> SYSTEM -> Settings -> ADS Symbolic.
  • Added new metaData.adsSymbolsUseUtf8
    • Set true if target system is using UTF-8 for ADS symbol encoding
  • Added new setting forceUtf8ForAdsSymbols (default: false)
    • If set, client always handles ADS symbols as UTF-8 encoded
    • Otherwise tries to detect the encoding or fallbacks to cp1252
  • readPlcUploadInfo() updated to support new version 3 upload info (inc. ADS symbol encoding info)
    • Also added support for old version 1 upload info (perhaps old TC2 devices..?)
  • New method sendAdsCommandWithFallback()
    • Calls sendAdsCommand() with a specific command. If it fails to certain ADS errors, tries the fallback command.
  • Bug fix: If RPC method parameter had attributes, error was thrown
  • Bug fix: If RPC method parameter had multiple flags, error was thrown (Response with ADS error received (error 1797 - Parameter size not correct))
  • When calling readPlcRuntimeState() and state has changed, event plcRuntimeStateChange is emitted (previously emitted only if notification received from PLC)
  • startPlc(), resetPlc(), stopPlc() and restartPlc() call readPlcRuntimeState() afterwards to update the runtime state to metadata (and to emit event if needed)
  • Added support for ENUM value comments and attributes (TwinCAT 3.1.4026 and newer)

v.1.14.4

03 Oct 18:01
Compare
Choose a tag to compare

[1.14.4] - 03.10.2023

Changed

  • Bug fix: Changed RPC method flags from 16-bit to 32-bit
  • Bug fix: Fix RPC method parsing in TwinCAT 4026

See PR #127 for details.

Thank you icon-bobk for contribution!

2.0.0-beta.4

02 Oct 17:12
Compare
Choose a tag to compare
2.0.0-beta.4 Pre-release
Pre-release

[2.0.0-beta.4] - 02.10.2024

  • Improved TwinCAT 2 support
    • Improved performance by caching base data types that aren't available in the PLC (for example, INT16 in TC2)
    • Bug fix: Building data types for TC2 system didn't always work (DataType flag is not set in base types)
    • Bug fix: Building data types for TC2 system didn't always work (with arrays of base types)
  • Added test suites for TwinCAT 2
  • Bug fix: Client failed to disconnect when using AdsRouterConsole as a TwinCAT router
    • Client now waits for port unregistering response, if the connection is not dropped immediately

Thank you Christian Rishøj for contribution!

2.0.0-beta.3

10 Sep 18:55
Compare
Choose a tag to compare
2.0.0-beta.3 Pre-release
Pre-release

[2.0.0-beta.3] - 10.09.2024

  • BREAKING: Renamed ReadWriteRawMultiCommand property writeData to value
  • Added warning event to listen for console warnings
  • Bugfix: writeRawByPath() didn't use the targetOpts parameter
  • Type ClientEvents renamed to AdsClientEvents
  • Added automatic deletion of stale subscriptions / unknown ADS notification handles
    • New setting: deleteUnknownSubscriptions (default: true)

Thank you Christian Rishøj for contribution!

[2.0.0-beta.2] - 26.08.2024

  • Changed subscribeSymbol() -> subscribeValue()
  • Bug fix: Fixing issue #144

[2.0.0-beta.1] - 24.08.2024

IMPORTANT: This is a major version update. There are lots of breaking changes!

Updating v1 -> v2 requires manual changes to your codebase!

See MIGRATION.md for all breaking changes and follow the instructions. This changelog does not have breaking changes listed for 2.0.0.

Changes

  • Everything rewritten in TypeScript
  • Everything is tested before releasing
  • Lots of optimizations
  • Lots of name changes
  • New methods: resetPlc(), readWriteRawMulti(), writeRawByPath(), readValueBySymbol(), writeValueBySymbol()
  • New setting disableCaching: disables all symbol and data type caching
  • Added optional targetOpts argument in all methods
    • Possible to provide different target address (AmsNetId and/or AdsPort) than specified in the settings
    • Caching is only available for the original target provided in settings
    • The same client can be used for many different targets at the same time
  • Added support for reading/writing INTERFACE data types
  • Added support for reading/writing empty FUNCTION_BLOCKs
  • Added support for reading/writing BIT data type
  • Writing a STRING or WSTRING value that is longer than the target data type causes the string to be truncated.
    • Previously the string end character was lost, which caused "never ending string" and <Value of the expression cannot be retrieved in PLC online view.
    • E.g. writing 85 bytes of string to STRING(80) variable
  • BOOL and BIT data values are now true if the value is anything else than 0
    • In TwinCAT, BOOL is true if the value is anything else than zero (see x_TO_BOOL)
    • Before, ads-client set the value to true only if value was true or 1, otherwise it was 0
  • writeControl() accepts also string values for adsState

v.1.14.3

23 Sep 07:26
1a88b8a
Compare
Choose a tag to compare

[1.14.3] - 23.09.2023

Changed

Added

  • Updated readme to include information about TypeScript types
  • Updated readme with FAQ about TwinCAT 2 low-end devices
  • Updated readme about v2 development
  • Added option to run tests with usermode runtime AmsNetId (192.168.4.1.1.1) instead of localhost (npm run test-um)