GithubHelp home page GithubHelp logo

iobroker-community-adapters / iobroker.beckhoff Goto Github PK

View Code? Open in Web Editor NEW
19.0 5.0 4.0 2.06 MB

ioBroker Adapter to Communicate with Beckhoff Automation System over ADS

License: MIT License

JavaScript 80.30% HTML 19.70%
beckhoff ads twincat iobroker smarthome

iobroker.beckhoff's Introduction

Logo

ioBroker.beckhoff

GitHub license Downloads GitHub repo size Translation status
GitHub commit activity GitHub commits since latest release (by date) GitHub last commit GitHub issues
Version:
NPM version Current version in stable repository Number of Installations
Tests:
Test and Release CodeQL

BECKHOFF Adapter for ioBroker

This adapter for ioBroker can Communicate with a Beckhoff Automation System (Twincat 2 or 3) over the ADS Protocol. The ADS Protocol is implemented in every System of Beckhoff and can be used without any License on ioBroker or Automation System.

This Project is not affilate to Beckhoff in any way

Description

Requirements

  • Beckhoff PLC that has an ethernet connection and is connected to your LAN
    • Make your you give the PLC a fixed IP address
    • Make sure you can ping the PLC from ioBroker
    • TwinCat 2 excluding BC Runtimes or TwinCat 3

PLC Configuration

  1. Enable ADS on your PLC project. To do this click on your task and then enable the checkbox before Create symbols. Download the new configuration and make sure you reboot your PLC. The reboot is only needed when you are using TwinCat 2.

    createSymbols

  2. Now add a static route to our Beckhoff PLC. The route should point to your server that will run the proxy application.

    Here an example to add a Static Route directly on PLC u can add this Route also from your EngineeringPC to the PLC.

    createSymbols

    Important is that the AmsNetId and the AdressInfo (IP-Adress) matches with the Adapter Settings. For further Information about TwinCat Router and Security read Documentation on Synchronisierung Beckhoff Information System

  3. On TwinCat 2 Create a Struct and fill in your needed Symbols. Then add this Struct to a GlobalVariableTable.

    Currently Supported Types: BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, TIME_OF_DAY, TOD, DATE, DATE_AND_TIME, DT, STRING

    OPTIONAL: You can create a Variable in root of Struct with the exact name -> ioBrokerResync (Not Casesensitiv and not matter which Type) -> Every time this Variable changes his value the Table get resynced in ioBroker.

  4. On TwinCat 3 Create a GlobalVariableTable and fill in your needed Symbols.

    Currently Supported Types: BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, TIME_OF_DAY, TOD, DATE, DATE_AND_TIME, DT, STRING

    OPTIONAL: You can create a Variable in root of Variable Table with the exact name -> ioBrokerResync (Not Casesensitiv and not matter which Type) -> Every time this Variable changes his value the Table get resynced in ioBroker.

Adapter Configuration

Twincat 3 and Twincat 2

  1. Choose your Runtime Version
  2. Fill in Target IP-Adress and AMS-Net-ID.
  3. On TwinCat 2 fill in the Instance Name of Struct.
  4. On TwinCat 3 fill in the correct Tablename of the before created GlobalVariableTable.
  5. All other Points u mostly not need to Change.

Twincat 2 <= v2.11.2240

Upload your *.tpy File from your PLC Project -> Every Time you change something on the Struct u communicate with the ioBroker, you need to Upload it again.

Dataexchange

  • When some Value is changed in PLC then it will be automatic transferred to ioBroker
  • When a Value is changed in ioBroker (Important: ACK need to be FALSE!!) then the Value will be automatic transferred to PLC. After that the Adapter set ACK to TRUE.

Attention

  1. TwinCAT AMS Router doesn't allow multiple TCP connections from the same host. So when you use two instances on the same host to connect to the same TwinCAT router, you will see that TwinCAT will close the first TCP connection and only respond to the newest.
  2. The Adapter Sync the complete GlobalVariableTable. U have different options to trigger a resync:
    • Create a resync Variable in PLC (See here)
    • When the PLC are not in Run longer your Resync Intervall -> Then the Sync will triggered after the start of PLC.
    • Every Time you Download the Project to your PLC except "OnlineChange"
    • Restart the Adapter
  3. Sync never meant the Dataexchange of the Symbols. Sync is the create or delete the States in ioBroker dependent on the GlobalVariableTable in the PLC.

Changelog

1.6.0 (2024-04-02)

  • (mcm1957) Adapter requires node.js 18 and js-controller >= 5 now
  • (mcm1957) Dependencies have been updated

1.5.3 (2023-10-29)

  • (mcm1957) Dependencies have been updated

1.5.3-alpha.0 (2023-10-29)

  • (mcm1957) Standard test environment has been updated

1.5.2 (2023-03-21)

  • (dkleber89) Fix Adapter Checker Issues

1.5.1 (2022-03-19)

  • (PLCHome) Add TIME, TIME_OF_DAY, TOD, DATE, DATE_AND_TIME and DT support
  • (PLCHome) Support for strings with all char length

1.5.0 (2021-09-28)

  • (dkleber89) Process next state in list when register subscriptions not before the previous is finish processed in plc

1.4.1 (2021-06-13)

  • (dkleber89) Some little Adapter maintenance

1.4.0 (2021-01-25)

  • (dkleber89) Add LREAL Support

1.3.0 (2021-01-25)

  • (dkleber89) Set correct type for channels

1.2.2 (2020-05-30)

  • (dkleber89) Clear reconnectTimeout on Adapter unload;

1.2.1 (2020-04-20)

  • (dkleber89) Add CI over Github Actions; Update Dependencies;

1.2.0 (2020-01-02)

  • (dkleber89) Add Support for Strings with fixed length to 80 Chars

1.1.0 (2019-11-12)

  • (dkleber89) Add Support for older TwinCat2 Systems with no autosync

1.0.7 (2019-10-25)

  • (dkleber89) Add Support for Compact Mode -> JS Controller >= 2.0.0

1.0.6 (2019-08-11)

  • (dkleber89) Add check change of Datatype on resync

1.0.5 (2019-08-10)

  • (dkleber89) Eslint, Prettier with Airbnb Codestyle, CI adopted, little random changes in Project Structure

License

The MIT License (MIT)

Copyright (c) 2024 iobroker-community-adapters [email protected] Copyright (c) 2018-2023 dkleber89 [email protected]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

iobroker.beckhoff's People

Contributors

alcalzone avatar anunezde avatar apollon77 avatar bondrogeen avatar dependabot[bot] avatar dfrozen avatar dkleber89 avatar germanbluefox avatar instalator avatar jey-cee avatar ldittmar81 avatar mcm1957 avatar plchome avatar pmant avatar stabilostick avatar twonky4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

iobroker.beckhoff's Issues

ACK status von ADS Com

Hallo

In Verbindung mit MQTT und weiterreichen von Daten an Openhab und zurück ist die Frage aufgetaucht ob es eine Möglichkeit gibt den Status von ACK abzufragen oder diesen zu manipulieren ?

Weiterreichen von daten mit MQTT Broker und einen externen Broker funktioniert, jedoch von MQTT Cloud nicht wieder in den Beckhoffadapter variablen.

ADS Client: Error: timeout

Hallo zusammen,
vorab ich bin auf beiden Gebieten Iobroker und Beckhoff SPS (Konfiguration) ein Anfänger.
Standard SPS Programmierung hab ich drauf und schon bei einem Kumpel iobroker und Eaton SPS via modbus "verheiratet".

Jetzt wollte ich bei mir zu Hause auch den iobroker nutzen und diesen mit meiner Beckhoff SPS verbinden.
Doch da hab Verbindungsaufbau Probleme.

Im Einsatz hab ich eine Beckhoff CX9020 mit Twincat3 (Build4024.4) und iobroker (admin 5.3.8 und beckhoff 1.5.1) läuft erstmal auf einem Raspberry pi3.
Meine Fragen wären:

  1. Der Name von "Ziel Variablentabelle" ist das eins zu eins der Name den in im TwincatXAE Shell benutze?
    Bei mir heißt die z.B. GVL_ioBroker
  2. In der GVL-Liste kann man auch Attribute definieren z.B. {attribute 'qualified_only'} machen die was aus?
  3. Unter Optinale in Instanzeinstellungen vom Adapter kann man Adapter AMS-Net-ID und Adapter AMS Port einstellen.
    Wie kann ich den Adapter AMS Port abgleichen?
    Die Adapter AMS-Net-ID setzt sie sich aus IP-Adresse plus .1.1 zusammen?

Anbei ein paar Screenshots von der Adaptereinstellung und vom Logbuch

beckhoff 0 config

beckhoff 0 log

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/dkleber89/ioBroker.beckhoff

  • [E154] common.dependencies must contain{"js-controller": ">=2.0.0"} or {"js-controller": ">=3.0.0"}

I have also found warnings that may be fixed if possible.

  • [W801] .npmignore not found

Thanks,
your automatic adapter checker.

P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info

Update stable version in repo from 1.5.2 to 1.5.3

Think about update stable version to 1.5.3

Version: stable=1.5.2 (252 days old) => latest=1.5.3 (30 days old)
Installs: stable=185 (64.91%), latest=11 (3.86%), total=285

Click to use developer portal
Click to edit

Note: This is an automatically generated message and not personally authored by bluefox!

Verliert Verbindung

Hallo,
Folgendes Problem seit ich in dem ioBroker alle Adapter aktualisiert habe. (25.10.2020)

Kommt es verhäuft am Tag vor das die Verbindung zur Beckhoff Steuerung über deinem Adapter nicht mehr stattfindet.
Es werden keine Datenpunkte aktualisiert im Iobroker(VM)<->Beckhoff (CX8090 TC2) (Keine W-Lan Verbindung)

2020-10-28 06:11:09.688 - warn: beckhoff.0 (9507) Subscription for: .iobroker.Rolladen.RollerBlind_5 occure an Error: timeout

Wenn die Verbindung hergestellt ist, funktioniert auch alles sofort. Eingabe -> Ausgabe ist ~ Zeitgleich.

Hast du eine Idee woran das liegen, bzw. wo ich evtl. den Fehler finden kann ?

Sollte ich sonst ein Watchdog machen ? Bzw. in meine Skripte mit integrieren ?

Info:
Platform: linux
os: linux
Architecture: x64
CPUs: 2
Speed: 2195 MHz
Model: Intel(R) Xeon(R) CPU E31220L @ 2.20GHz
RAM: 2.9 GB
System uptime: 3 daysShortText 17:46:03
Node.js: v12.13.1
NPM: 6.12.1
adapters count: 371
Disk size: 60.3 GiB
Disk free: 46.8 GiB
Uptime: 3 daysShortText 12:03:05
Active instances: 39

Update stable version in repo from 1.5.3 to 1.6.0

Think about update stable version to 1.6.0

Version: stable=1.5.3 (186 days old) => latest=1.6.0 (30 days old)
Installs: stable=133 (45.24%), latest=8 (2.72%), total=294

Click to use developer portal
Click to edit

Do not close this issue manually as a new issue will be created if condition for update still exists.

Please drop a comment if any reason exists which blocks updating to version 1.6.0 at this time.

Note: This is an automatically generated message and not personally authored by bluefox!
@mcm1957 for evidence

Could not establish Connection to PLC

My CX9010 worked successfully with the iobroker adapter (Twincat 2 mode). After CX9010 turning off/on, I can not get the connection. I tried all versions of the driver, many times reverted all the options. In TwinCat System Manager / PLC - everything is fine. Error in debug mode:

beckhoff.0 | 2020-05-01 23:46:21.571 | info | (27578) Try to reconnect in 60 seconds
beckhoff.0 | 2020-05-01 23:46:21.569 | error | (27578) ADS Client: Error: timeout
beckhoff.0 | 2020-05-01 23:46:21.066 | debug | (27578) Start establish Connection to PLC

Release script: Action required

Hi, it looks like you are using @alcalzone/release-script to manage your releases.
When updating to the latest version, you need to remove the following line from your .github/workflows/test-and-release.yml if you want the releases to keep working:

  deploy:
    # Trigger this step only when a commit on master is tagged with a version number
    if: |
      contains(github.event.head_commit.message, '[skip ci]') == false &&
      github.event_name == 'push' &&
-     github.event.base_ref == 'refs/heads/master' &&
      startsWith(github.ref, 'refs/tags/v')

It may also look like this one:

  deploy:
    # Trigger this step only when a commit on master is tagged with a version number
    if: |
      contains(github.event.head_commit.message, '[skip ci]') == false &&
      github.event_name == 'push' &&
-     github.event.base_ref == 'refs/heads/main' &&
      startsWith(github.ref, 'refs/tags/v')

A large number of values are not transferred from PLC to iobroker

  1. A large number of values are not transferred from PLC to iobroker.
    No problem if the number of values are 64 (driver in "debug" level) - I did not detect losses during transmission.
    But if you pass 82 values, then some of the values are not transferred (nothing in iobroker debug logs for updated values from PLC).

  2. I found that in the "debug" level of the driver in iobroker, the transfer of values is stable (64 values). In the "info" level (64 values), not all values are transferred from PLC to the ioBroker.
    P.S. I use TC2, beckhoff CX9000.

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/dkleber89/ioBroker.beckhoff

  • [E021] "licenses" in package.json are depricated. Please use only "license": "NAME" field.
  • [E140] width and height of logo are not equal
  • [E301] Tests on Travis-ci.org are broken. Please fix.
  • [E605] No actual year found in copyright. Please add "Copyright (c) 2019 [object Object]" or "Copyright (c) 20xx-2019 [object Object]" at the end of Readme
  • [E701] No actual year found in LICENSE. Please add "Copyright (c) 2019 [object Object]" or "Copyright (c) 20xx-2019 [object Object]" at start of LICENSE

I have also found a few warnings that may be fixed, if possible.

  • [W113] Adapter should support compact mode

Thanks,
your automatic adapter checker.

P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/dkleber89/ioBroker.beckhoff

  • [E605] No actual year found in copyright. Please add "Copyright (c) 2018-2020 dkleber89 [email protected]" at the end of README.md
  • [E701] No actual year found in LICENSE. Please add "Copyright (c) 2018-2020 dkleber89 [email protected]" at the start of LICENSE

I have also found warnings that may be fixed if possible.

  • [E801] .npmignore not found

Thanks,
your automatic adapter checker.

P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info

Bad Log Output on first Startup

Bad Startup Log ... and a big Problem with multiple connection Objects and process ending ... Doesn´t know wy i not see that on Testsystem

Log Output after first Startup:

Source Time Level Message
beckhoff.0 2018-11-03 21:18:38.498 error at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8)
beckhoff.0 2018-11-03 21:18:38.498 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
beckhoff.0 2018-11-03 21:18:38.498 error at Manager. (/opt/iobroker/node_modules/component-bind/index.js:21:15)
beckhoff.0 2018-11-03 21:18:38.498 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12)
beckhoff.0 2018-11-03 21:18:38.498 error at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:278:10)
beckhoff.0 2018-11-03 21:18:38.498 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
beckhoff.0 2018-11-03 21:18:38.498 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
beckhoff.0 2018-11-03 21:18:38.498 error at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3425:37)
beckhoff.0 2018-11-03 21:18:38.498 error at Object.stateChange (/opt/iobroker/node_modules/iobroker.beckhoff/beckhoff.js:95:25)
beckhoff.0 2018-11-03 21:18:38.498 error at Object.module.exports [as workerPlcToAdapter] (/opt/iobroker/node_modules/iobroker.beckhoff/lib/workerPlcToAdapter.js:42:9)
beckhoff.0 2018-11-03 21:18:38.498 error TypeError: Cannot read property 'on' of null
beckhoff.0 2018-11-03 21:18:38.482 error message beckhoff.0.info.connection [object Object] Cannot read property 'on' of null
beckhoff.0 2018-11-03 21:18:38.487 error at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8)
beckhoff.0 2018-11-03 21:18:38.487 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
beckhoff.0 2018-11-03 21:18:38.487 error at Manager. (/opt/iobroker/node_modules/component-bind/index.js:21:15)
beckhoff.0 2018-11-03 21:18:38.487 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12)
beckhoff.0 2018-11-03 21:18:38.487 error at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:278:10)
beckhoff.0 2018-11-03 21:18:38.487 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
beckhoff.0 2018-11-03 21:18:38.487 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
beckhoff.0 2018-11-03 21:18:38.487 error at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3425:37)
beckhoff.0 2018-11-03 21:18:38.487 error at Object.stateChange (/opt/iobroker/node_modules/iobroker.beckhoff/beckhoff.js:95:25)
beckhoff.0 2018-11-03 21:18:38.487 error at Object.module.exports [as workerPlcToAdapter] (/opt/iobroker/node_modules/iobroker.beckhoff/lib/workerPlcToAdapter.js:42:9)
beckhoff.0 2018-11-03 21:18:38.487 error TypeError: Cannot read property 'on' of null
beckhoff.0 2018-11-03 21:18:38.482 error message beckhoff.0.info.connection [object Object] Cannot read property 'on' of null
beckhoff.0 2018-11-03 21:18:38.455 info Connected to PLC. State of PLC: RUN
beckhoff.0 2018-11-03 21:18:38.426 info starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.beckhoff, node: v6.14.4

Sync PLC Variables: Error: Type (TIME) found but not Supported!!

Moin,

mein Beckhoff ADS Adapter meldet seit einiger Zeit folgenden Fehlermeldung und Synchonisiert die GVL nicht mehr:

Sync PLC Variables: Error: Type (TIME) found but not Supported!! Please Check your Variable Table and your Datatypes in PLC

In der GVL habe ich allerdings keine Variable des Type (TIME) drin.

Folgende Schritte habe ich bislang Probiert:

  • GVL auf Datentypen geprüft -> kein Erfolg
  • Neue GVL mit anderem Namen und zwei Bool Variablen erstellt und im Adapter hinterlegt. -> kein Erfolg
  • Update des Beckhoff ADS Adapters auf V1.4.1 -> kein Erfolg
  • Löschen der Objekte in ioBroker und anschließender Neustart der Beckhoff Instanz -> kein Erfolg
  • Deintsallation des Beckhoff Aapters, anschließene Neuinstallation -> kein Erfolg
  • Bereinigen des PLC Projektes, Download des PLC Projektes mit vollständigem Laden -> kein Erfolg

Ich habe die Kommunikation zwischen ioBroker und PLC redundant aufgebaut, die Kommunikation über eine zweite, "eigentlich Identische" ioBroker installation macht keine Probleme mit dem Beckhoff Adapter.

Hat jemand schon mal ähnliche Probleme gehabt? Würde mich über Ideen freuen um die Herkunft des Problems zu finden.

Gruß, Dennis

GVL:
grafik

Adaptereinstellungen:
grafik

Firing 'Write after End' Error

When Connection getting lost and we want to write a Value to PLC between connection lost and lost detection then Adapter fires 1 Minute every 500ms this Error Message -> After that the Adapter goes in normal State and do what he have to do...

Source Time Level Message
beckhoff.0 2018-11-04 10:13:07.500 error ADS Client: Error: write after end
beckhoff.0 2018-11-04 10:13:07.000 error ADS Client: Error: write after end
beckhoff.0 2018-11-04 10:13:06.499 error ADS Client: Error: write after end
beckhoff.0 2018-11-04 10:13:05.999 error ADS Client: Error: write after end
beckhoff.0 2018-11-04 10:13:05.499 error ADS Client: Error: write after end
beckhoff.0 2018-11-04 10:13:04.999 error ADS Client: Error: write after end
beckhoff.0 2018-11-04 10:13:04.497 error ADS Client: Error: write after end
beckhoff.0 2018-11-04 10:13:03.996 error ADS Client: Error: write after end
beckhoff.0 2018-11-04 10:13:03.495 error ADS Client: Error: write after end
beckhoff.0 2018-11-04 10:13:03.378 info Try to reconnect in 15 seconds
beckhoff.0 2018-11-04 10:13:03.377 error ADS Client: Error: read ECONNRESET
beckhoff.0 2018-11-04 10:12:59.976 debug Start establish Connection to PLC
beckhoff.0 2018-11-04 10:12:44.977 info Try to reconnect in 15 seconds
beckhoff.0 2018-11-04 10:12:44.976 error ADS Client: timeout
beckhoff.0 2018-11-04 10:12:44.061 debug Write Symbol Value from PLC to ioBroker: ioBrokerSchnittstelle.testerei -> false
beckhoff.0 2018-11-04 10:12:44.019 debug Write Symbol Value from ioBroker to PLC: ioBrokerSchnittstelle.testerei -> false
beckhoff.0 2018-11-04 10:12:43.060 debug Write Symbol Value from PLC to ioBroker: ioBrokerSchnittstelle.testerei -> true
beckhoff.0 2018-11-04 10:12:43.021 debug Write Symbol Value from ioBroker to PLC: ioBrokerSchnittstelle.testerei -> true
beckhoff.0 2018-11-04 10:12:42.762 debug Write Symbol Value from PLC to ioBroker: ioBrokerSchnittstelle.varDut.varBool -> true

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/dkleber89/ioBroker.beckhoff

  • [E154] common.dependencies must contain{"js-controller": ">=2.0.0"} or {"js-controller": ">=3.0.0"}

I have also found warnings that may be fixed if possible.

  • [W801] .npmignore not found

Thanks,
your automatic adapter checker.

P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info

adsClientGetSymbolsError: timeout

Describe the bug
Hallo zusammen,

ich habe ein Problem mit dem Ads Adapter für Beckhoff in IOBroker. Ich habe bereits zwei Instanzen vom Adapter im Einsatz und habe keine Probleme damit. Allerdings bekomme ich bei der dritten Instanz immer wieder folgende Fehlermeldung:

IoBroker Log

Ich habe bereits die Konfiguration meines IOBroker-Systems sowie die Route zur Verbindung mit dem Beckhoff-Steuerungssystem überprüft und konnte keine Fehler feststellen. Allerdings muss ich erwähnen, dass ich für diese Verbindung einen nicht ganz so schnellen VPN nutze. Aufgrund dessen vermute ich, dass das Timeout-Problem mit der VPN-Verbindung zusammenhängen könnte, bin mir jedoch nicht sicher.

Aus dem Quellcode vom "node-ads-api" konnte ich entnehmen, dass es die Timeout-Variable "timeout" gibt, welche nicht im adapter überschrieben wird.

var options = {
    //The IP or hostname of the target machine
    host: "10.0.0.2",
    //The NetId of the target machine
    amsNetIdTarget: "5.1.204.160.1.1",
    //The NetId of the source machine.
    //You can choose anything in the form of x.x.x.x.x.x,
    //but on the target machine this must be added as a route.
    amsNetIdSource: "192.168.137.50.1.1",

    //OPTIONAL: (These are set by default)
    //The tcp destination port
    //port: 48898
    //The ams source port
    //amsPortSource: 32905
    //The ams target port for TwinCat 2 Runtime 1 
    //amsPortTarget: 801 
    //The ams target port for TwinCat 3 Runtime 1
    //amsPortTarget: 851 
    //The timeout for PLC requests
    //timeout: 500
    //The Local address the socket should connect from
    //localAddress: "192.168.137.50"
    //The Local port the socket should connect from
    //localPort: 50000
    //Version of IP stack. Must be 4, 6, or 0. The value 0 indicates that both IPv4 and IPv6 addresses are allowed. Default: 0
    //family: 4
}

Ich vermute, dass mein Problem damit zusammenhängen könnte. Deshalb würde ich gerne wissen, ob es möglich ist, die Timeout-Variable in der "node-ads-api" von 500 ms auf 10000 ms zu erhöhen, um zu testen, ob dies das Problem lösen kann.

Versions:

  • Adapter version: 1.5.2
  • Node version: 5.1.25
  • Operating system: linux

Compatibility check and testing for Node.js 14 and 16

Dear Adapter developer,

Node.js 14 is now available for a year and Node.js 16 was release just some days ago and will become LTS by October 2021. We plan to update the ioBroker Node.js recommendation (currently 12.x) to 14.x later this year.

Please check your adapter with Node.js 14 especially, and ideally also directly with Node.js 16

Please add both versions to the adapter testing which is executed on commits.

If your adapter requires a certain minimum version of Node.js please set the 'engine' setting in package.json accordingly! Please also do this if the adapter is not able to work in certain Node.js versions, so that ioBroker can prevent users from installing te adapter if not compatible!

On questions please talk to us at ioBroker/ioBroker.js-controller#1138

Please close the issue after you checked it.

Thank you very much for your support!

Compatibility check to js-controller 3.3 and Admin5 React UI

Dear Adapter developer,

with js-controller 3.2 and js-controller 3.3 some additional checks were added to make sure that created objects match to the specifications and also written state values match to the object definition.

If something is not correct this is logged as 'warning' or 'info' log.

Please take the time to verify your adapter by ideally starting with a fresh instance and do some actions and verify the log. If you see a warn log there from these checks please adjust the adapter and fix the relevant cases.

For questions please refer to ioBroker/ioBroker.js-controller#1301

Additionally we are preparing Admin 5 which will have a completely rewritten UI. Please install Admin 5, activate that new UI and verify that the configuration of you adapter works as expected also there.

More informations on Admin 5 can be found in Forum https://forum.iobroker.net/topic/44282/test-adapter-admin-5-0-x-alpha-der-neuen-ui

Please close the issue after you checked it.

Thank you very much for your support!

Ordner einer Struktur als Typ Channel

Hi,
ist es möglich das der Ordner einer Struktur in den Objekten den Typ "Channel" zugewiesen bekommt?
Derzeit ist der Typ leer dadurch kann ich diesen nicht einem Raum oder Funktion zuweisen.
Gruß
Nils

Each element of the structure is registered individually

I noticed that when I load a structure, each element is registered individually in the PLC.
Beckhoff says that you should not register more than 500 notifications.
https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_adsnetref/7312578699.html&id=
Currently, 500 notifications are registered for a structure with 500 elements

You can reduce the amount by registering the whole type and not each element individually.
But that will be a major change.

ADS Mailbox overflow Start / Stop Adapter

Hi,

vor allem bei Starten und Stoppen des Adapters aber auch manchmal zwischendurch werden sehr viele Anfragen an die SPS versendendet.
Das hat zur Folge, dass die ADS Mailbox überläuft bzw. voll ist und das wirkt sich leider auch auf andere Prozesse / Kommunikationen der SPS aus. z.B. angeschlossene Buskoppler BK9100 oder auch z.B. die Modbus TCP Kommunikation.
Diese geht dann unter umständen kurzzeitig in einen Fehler.

Ich habe zu dem Thema ein Dokument und einen Bereich im Infosys auf der Beckhoff Website gefunden welches das Thema ein bisschen erklärt:
https://download.beckhoff.com/download/document/application_notes/dk9322-0413-0070.pdf
https://infosys.beckhoff.com/content/1031/tcadscommon/html/tcadscommon_cookbookadsclient.htm

Kannst du dir das Thema mal anschauen ob sich das noch Optimieren lässt?
Vielleicht kann etwas Zeitlich verzögert werden oder mit den bei Beckhoff beschriebenen "ADS Sum Command" gearbeitet werden.
Gerne kann ich auch behilflich sein, wenn du einen Ansatz hast!?

Der Vollständigkeit hier noch ein Paar Infos zu den Versionen auf meinem Testsystem.
Spielt aber glaube ich keine Rolle.

  • Adapter Version: 1.2.2
  • Beckhoff Hardware CX8190 TC3 4024.7
  • Beckhoff XAE TC3 4024.11

Please check ioBroker.beckhoff with js-controller 2.0

Hi,

the new js-controller 2.0 will come into latest repository in the next days and we want to make sure that all adapters are working well. We already did a 2 weeks Beta test and so some adapter were aleady checked and some needed slight adjustments.

You can find more information in ioBroker/ioBroker.js-controller#482 and in the ioBroker Forum. If you have more technical questions please write in the referenced issue or in the Developer thread please. General questions are best in the genral thread.

Please update your systems to js-controller 2.0 and check your adapter.

Please close this issue once you have checked your adapter or received successfull reports from users.

Thank you very much for your support. Please contact us in the other Threads or Forum on any question.

Übergabe der Rollen für Channel und State aus der Beckhoff-SPS

Hi,

ist es möglich die an den ioBroker übergebenen Strukturen und deren Inhalt schon in der SPS eine Rolle zuzuweisen? Mein erster Gedanke war es, einen Kommentar hinter dem Strukturnamen und der Variable zu schreiben in dem die passende Rolle steht und diesen Kommentar dann im ioBroker/Adapter zu verarbeiten und entsprechend einzufügen. Hintergrund ist die automatische Erstellung von Visualisierungen, beipielsweise in iQontrol, und die automatische Verknüpfung der passenden Variablen an den Baustein in der Visualisierung.

Eine Auflistung mit sämtlichen Rollen für die Channel findet sich hier.
Eine Auflistung mit sämtlichen Rollen für die Variablen findet sich hier.

Screenshots

Ich habe hier mal zwei Leuchten angelegt und die erste von Hand angepasst. Wenn man die Struktur passend kommentieren würde und die Rollen automatisch übergeben würden, würde das einige Arbeit ersparen. In die Zelle Rolle des Channels müsste laut der oben verlinkten Auflistung die Rolle Light eingefügt werden, allerdings wird das nicht übernommen, egal wie ich die Eingabe bestätige - bei anderen Adaptern klappt's. Muss das im Beckhoff-Adapter noch freigegeben werden?

Screenshot ioBroker

Wenn Du Rückfragen hast, stehe ich gerne zur Verfügung.

Gruß,
DaHi35

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/dkleber89/ioBroker.beckhoff

  • [E201] Bluefox was not found in the collaborators on NPM!. Please execute in adapter directory: "npm owner add bluefox iobroker.beckhoff"

I have also found warnings that may be fixed if possible.

  • [W113] Adapter should support compact mode

Thanks,
your automatic adapter checker.

P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info

ADS Client: Error: timeout nach Reboot

Describe the bug
Mein System lief seit ca. 2 Jahren fehlerfrei. Durch einen Stromausfall kam es heute zum Neustart. Seither kann sich der Adapter nicht mehr verbinden, im Log ist zu lesen "ADS Client: Error: timeout". Es wurden keinerlei Änderungen vorgenommen, lediglich der Neustart.

Screenshots & Logfiles
image

Versions:

  • Adapter version: war 1.5.2, inzwischen geupdatet auf 1.5.3 ohne Änderung
  • JS-Controller version: 4.0.24
  • Node version: 18.17.1
  • Operating system: Ubuntu 22.04.3 LTS

Additional context
-Das IOBroker-System wurde mehrfach neu gestartet
-Der Adapter wurde mehrfach neu gestartet
-Die SPS (CX9010 2.10.1328) wurde mehrfach neu gestartet, Programm neu generiert und geladen (läuft auch auf SPS)
-Die .tpy-Datei wurde neu generiert und ausgewählt.
Alles ohne Erfolg

Compatibility check to js-controller 4.0

Dear Adapter developer,

with js-controller 4.0 object definitions are now also checked that min/max in only provided for number/mixed objects and that the type of the default value matches to the object type.

If something is not correct this is logged as 'warning' or 'info' log.

Please also make sure to update to the lastest @iobroker/testing dependency 2.5.4 or to accept the PR from Apollon77 for legacy testing!

Please spent some time to verify your adapter by ideally starting with a fresh instance and do some actions and verify the log. If you see a warn or info log there from these checks please adjust the adapter and fix the relevant cases.

For questions please refer to ioBroker/ioBroker.js-controller#1749

Please close the issue after you checked it.

Thank you very much for your support to get the best experience for the growing numbers of ioBroker users!

Please add your adapter to ioBroker.discovery

I am an automatic service from ioBroker that searches adapters and makes suggestions.

I noticed that your adapter is not integrated in the ioBroker.discovery. Using the Discovery adapter, ioBroker can automatically find devices or suggest services to the user for installation. If possible I would live to see your adapter added there.

Some adapters have already been added and you can use them as blueprints. See: https://github.com/ioBroker/ioBroker.discovery You need to fork this project and then create a PR for your adapter to be added.

Basically the plugins can do HTTP calls, UDP discovery, MDNS, UPNP and will iterate over all devices found by IP scan and check local serial ports. If you want you can also add new discovery methods but please try to do that with at least dependencies as possible.

Then create one file under lib/adapters for your adapter to implement the detection and proposal of an instance to the user.

On questions, the other developers will support in the forum or via GitHub issues too.

If no detection is possible, simply close this issue and I won't bother you again. ;-)

Thanks,
your automatic adapter checker.

P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.