Willkommen in der Beckhoff Knowledge Base

Die Knowledge Base soll Sie bei der Suche nach Informationen zu unseren Produkten unterstützen.
Sie ist aus Ihren Anfragen an unseren Support entstanden und enthält somit die am häufigsten gestellten Fragen (FAQ´s).

Struktur der KB:

Die Knowledge Base ist in die Bereiche TwinCAT (Software), Hardware und Applikationsbeispiele eingeteilt.
Von der Übersichtsseite der jeweiligen Kapitel gelangen Sie zu den einzelnen Seiten.

Hinweise zur Dokumentation

Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Deshalb ist die Dokumentation nicht in jedem Fall vollständig auf die Übereinstimmung mit den beschriebenen Leistungsdaten, Normen oder sonstigen Merkmalen geprüft.
Falls sie technische oder redaktionelle Fehler enthält, behalten wir uns das Recht vor, Änderungen jederzeit und ohne Ankündigung vorzunehmen.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE® und XFC® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die TwinCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP0851348, US6167425 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Copyright

© Beckhoff Automation GmbH.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.

In der Knowledge Base der Beckhoff Automation GmbH finden Sie auch Verknüpfungen (Links) zu Webseiten, die teilweise nicht von der Beckhoff Automation GmbH, sondern von Dritten betrieben werden.
Für den Inhalt dieser Webseiten wird eine Haftung seitens der Beckhoff Automation GmbH ausgeschlossen.


TwinCAT

Übersicht der Einträge unter TwinCAT
Com
Kommunikation ADS DLL
ADS OCX
Kommunikation mit Fremdgeräten
NC
NC I
PLC Control
System
System Manager

zurück zur allgemeinen Übersicht


TwinCAT COM

Datum | Artikel-ID. | Artikelauswahl
13.11.2000 | 00110301 | KL6xxx Beispielprogramm

zurück zur TwinCAT Übersicht


KL6xxx Beispielprogramm

Datum: 13.11.2000 Artikel-ID: 00110301

Frage:

Wie setze ich die Klemme KL6001 unter Profibus ein?

Antwort:

Allgemeines: Die Beispiel FB´s demonstrieren die Benutzung der Klemme KL6001 unter Profibus.

Testaufbau:

Testsoftware:

Es wurden zwei Beispielbausteine geschrieben die das Handshake zum Senden bzw. Empfangen von Zeichen demonstrieren. Die zu sendenden / empfangenden Zeichen sind in zwei Datenbausteinen abgelegt. Zur Kontrolle dient ein PC mit einem Terminalprogramm (z. B. Term90).

Parametrierung des Terminalprogramms: 9600 Baud , 8 Datenbit, 1 Stopbit, None parity, RTS/CTS.

Parametrierung der IM 308 (B/C):

Steckplatz 0: | 177 | 100 E/A
Steckplatz 1: | 177 | 100 E/A

(Andere Kennungen ebenfalls möglich )

Dabei ergibt sich folgende Zuordnung zwischen den SPS Adressen und den Daten / Controlbytes der RS 232 Klemme:

SPS Adresse | Bedeutung KL6001
EB 100 | Eingangdaten Byte 0
EB 101 | Statusbyte
EB 102 | Eingangdaten Byte 2
EB 103 | Eingangdaten Byte 1
AB 100 | Ausgangsdaten Byte 0
AB 101 | Controllbyte
AB 102 | Ausgangsdaten Byte 2
AB 103 | Ausgangsdaten Byte 1


TwinCAT Kommunikation

Übersicht
ADS DLL ADS OCX Fremdgeräte

TwinCAT ADS DLL

Datum | Artikel-ID. | Artikelauswahl
27.06.2001 | 01060104 | Die ADS DLL Applikation hängt beim Windows 2000 Shutdown

TwinCAT OCX

Datum | Artikel-ID. | Artikelauswahl
09.11.2000 | 00110705 | ADS OCX in Delphi Anwendungen V
27.06.2001 | 01060710 | Die ADS OCX Applikation hängt beim Windows 2000 Shutdown
20.02.2004 | 04020711 | Methode AdsSyncReadBoolVarReq liefert keine Daten in Borland Builder 6 Applikationen

TwinCAT Kommunikation- Fremdgeräte

Datum | Artikel
13.04.2006 | Anbindung von XM3-Kartenleser der Firma Cross Point per RS485
30.06.2006 | Anbindung TwinCAT an Windows XP Media Center Edition
04.11.2008 | Anbindung TwinCAT an die Wetterstation der Firma Elsner
14.07.2009 | Anbindung TwinCAT an das Thermokon Bediengerät
04.11.2009 | Anbindung TwinCAT an das Maestro100Lite-Modem
22.01.2013 | Anbindung TwinCAT an das sACN Protokoll

Weitere Dokumentationen zur Kommunikation mit Fremdgeräten und die Anbindung Flash per ASP/ASP.NET finden Sie unter:
Beckhoff Information System -> TwinCAT -> TwinCAT System -> TwinCAT Connectivity -> TwinCAT ADS Beispiele:

Die Dokumentation zur Kommunikation mit Crestron finden Sie unter den TwinCAT Supplements: TwinCAT Crestron Server


Die ADS DLL Applikation hängt beim Windows 2000 Shutdown

Datum: 27.06.2001 Artikel-ID: 01060104

Frage:

Wenn bei einer laufenden AdsDll-Applikation ein Shutdown des PC's aufgerufen wird, hängt die Applikation und das Betriebssystem kann nicht runtergefahren werden. Der Fehler ist erst nach einem Update von NT 4. 0 auf Windows 2000 aufgetreten. Warum wird die gleiche Applikation unter NT 4.0 fehlerfrei beendet?

Antwort:

Das Shutdown-Verhalten unter Windows 2000 hat sich im Vergleich zu NT 4.0 geändert. Applikationen, die eine Client-Server-Verbindung aufbauen, müssen diese Verbindung trennen. Die ADS DLL bietet dafür die Funktion: AdsPortClose(). Diese Methode muss beim System-Shutdown von der AdsDll-Applikation aufgerufen werden. Um das eingeleitete Shutdown in der Applikation zu erkennen, muss die Windows Message: WM_ENDSESSION abgefangen und ausgewertet werden. Es ist nicht ausreichend z.B. in dem FormDestroy-Eventhandler die Verbindung abzubauen, da dieser Eventhandler z.B. Delphi bei einem Shutdown nicht aufgerufen wird.

Andere Ursachen können auf folgende Weise ausgeschlossen werden:

Während die Applikation hängt, führen Sie einen Router ->Cleanup über das TwinCAT System-Menü in der Taskleiste. Dabei werden alle Verbindungen zu den Clients getrennt. Fährt das System runter, dann ist eine bestehende Verbindung zum TwinCAT Router die Ursache für das fehlerhafte Verhalten.

Beispiel für eine Implementierung in Delphi:

Der Eventhandler FormDestroy wird nur dann aufgerufen, wenn die Applikation vom Benutzer beendet wurde.

unit DelphiAdsDLLSample1Unit;

interface
uses
  Ads, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls;

type
  TForm1 = class(TForm)
.....
   procedure FormDestroy(Sender: TObject);
   private
    { Private-Deklarationen }
    procedure WM_EndSession(var Message: TMessage); message WM_ENDSESSION;
   public
    { Public-Deklarationen }
  end;

var
  Form1         : TForm1;

implementation

{$R *.DFM}
procedure TForm1.WM_EndSession(var Message: TMessage);
begin
    AdsPortClose();
    inherited;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
    AdsPortClose();
end;

.....

Beispiel für eine Implementierung in einer dialogbasierten VS C++ Applikation

Header:

class CAdsDLLW2KShutdownDlg : public CDialog
{
// Construction
public:
    CAdsDLLW2KShutdownDlg(CWnd* pParent = NULL);	// standard constructor
...
// Implementation
protected:
    ...
    // Generated message map functions
    //{{AFX_MSG(CAdsDLLW2KShutdownDlg)
    ...
    afx_msg void OnEndSession(BOOL bEnding);
    ...
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};
...

cpp-File:

BEGIN_MESSAGE_MAP(CAdsDLLW2KShutdownDlg, CDialog)
    //{{AFX_MSG_MAP(CAdsDLLW2KShutdownDlg)
    ...
    ON_WM_ENDSESSION()
    ...
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

...
void CAdsDLLW2KShutdownDlg::OnEndSession( BOOL bEnding )
{
    AdsPortClose();
    CDialog::OnEndSession( bEnding );
}


ADS-OCX in Delphi-Anwendungen V

Datum: 09.11.2000 Artikel-ID:00110705

Frage:

Kann ich ein String-Array aus der SPS lesen oder in die SPS schreiben?

Antwort:

Nein. Nur einzelne String-Elemente können zwischen der SPS und der ADS-OCX Applikation übertragen werden.


Die ADS OCX Applikation hängt beim Windows 2000 Shutdown

Datum: 27.06.2001 Artikel-ID: 01060710

Frage:

Wenn bei einer laufenden AdsOcx-Applikation ein Shutdown des PC's aufgerufen wird, hängt die Applikation und das Betriebssystem kann nicht runtergefahren werden. Der Fehler ist erst nach einem Update von NT 4. 0 auf Windows 2000 aufgetreten. Warum wird die gleiche Applikation unter NT 4.0 fehlerfrei beendet?

Antwort:

Das Shutdown-Verhalten unter Windows 2000 hat sich im Vergleich zu NT 4.0 geändert. Applikationen, die eine Client-Server-Verbindung aufbauen, müssen diese Verbindung trennen. Das ADS OCX bietet dafür die Methode: AdsAmsDisconnect(). Diese Methode muss beim System-Shutdown von der AdsOcx-Applikation aufgerufen werden. Um das eingeleitete Shutdown in der Applikation zu erkennen, muss die Windows Message: WM_ENDSESSION abgefangen und ausgewertet werden. Es ist nicht ausreichend z.B. in dem FormDestroy-Eventhandler die Verbindung abzubauen, da dieser Eventhandler z.B. Delphi bei einem Shutdown nicht aufgerufen wird.

Andere Ursachen können auf folgende Weise ausgeschlossen werden:

Während die Applikation hängt, führen Sie einen Router ->Cleanup über das TwinCAT System-Menü in der Taskleiste. Dabei werden alle Verbindungen zu den Clients getrennt. Fährt das System runter, dann ist eine bestehende Verbindung zum TwinCAT Router die Ursache für das fehlerhafte Verhalten.

Beispiel für eine Implementierung in Delphi:

Der Eventhandler FormDestroy wird nur dann aufgerufen, wenn die Applikation vom Benutzer beendet wurde.

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  OleCtrls, ADSOCXLib_TLB, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    AdsOcx1: TAdsOcx;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    procedure WM_EndSession(var Message: TMessage); message WM_ENDSESSION;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.WM_EndSession(var Message: TMessage);
begin
    AdsOcx1.AdsAmsDisconnect();
    inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    AdsOcx1.AdsAmsServerNetId:=AdsOcx1.AdsAmsClientNetId;
    AdsOcx1.AdsAmsServerPort:=801;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
    AdsOcx1.AdsAmsDisconnect();
end;

Beispiel einer Implementierung in Visual Basic:

Private Sub Form_Load()
    AdsOcx1.AdsAmsServerNetId = AdsOcx1.AdsAmsClientNetId
    AdsOcx1.AdsAmsServerPort = 801
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Call AdsOcx1.AdsAmsDisconnect
End Sub

Beispiel für eine Implementierung in einer dialogbasierten VS C++ Applikation

Header:

class CAdsOcxW2KShutdownDlg : public CDialog
{
// Construction
public:
    CAdsOcxW2KShutdownDlg(CWnd* pParent = NULL);	// standard constructor
...
// Implementation
protected:
    ...
    // Generated message map functions
    //{{AFX_MSG(CAdsOcxW2KShutdownDlg)
    ...
    afx_msg void OnEndSession(BOOL bEnding);
    ...
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};

cpp-File:

BEGIN_MESSAGE_MAP(CAdsOcxW2KShutdownDlg, CDialog)
    //{{AFX_MSG_MAP(CAdsOcxW2KShutdownDlg)
    ...
    ON_WM_ENDSESSION()
    ...
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

...
void CAdsOcxW2KShutdownDlg::OnEndSession( BOOL bEnding )
{
    m_AdsOcx.AdsAmsDisconnect();
    CDialog::OnEndSession( bEnding );
}


Methode AdsSyncReadBoolVarReq liefert keine Daten in Borland Builder 6 Applikationen

Datum: 20.02.2004 Artikel-ID: 04020711

Frage:

Das Borland Builder AdsOcx-Projekt funktionierte kompiliert unter der Borland Builder Version 5 einwandfrei. Als einer der Parameter der AdsSyncReadBoolVarReq-Methode wurde eine Variable vom Pointer auf TOLEBOOL verlangt. Nach einem Update auf die Borland Builder Version 6 wird in dem gleichen C++ Projekt ein Pointer auf short verlangt (VARIANT_BOOL* oder short*). Wenn man den zu übergebenden Parameter so deklariert wird auch fehlerfrei übersetzt. Beim Aufruf der Methode AdsSyncReadBoolVarReq werden aber keine Daten gelesen. Der Fehler bleibt bestehen wenn man ein komplett neues C++ Projekt anlegt und die AdsOcx-Komponente neu importiert.

Antwort:

Beim Import der ActiveX-Komponente AdsOcx wird vom Borland Builder eine Typbibliothek generiert. Die Funktionsprototypen der AdsOcx-Methoden in der Typbibliothek vom Borland Builder 6 unterscheiden sich von den Funktionsprototypen in Borland Builder 5. Beim Aufruf der Methode wird dann ein falscher Parametertyp an das AdsOcx weitergegeben. Die eigentliche Methode wird gar nicht aufgerufen. Durch eine Aufnahme der Kommunikation mit dem AdsAmsDebugger kann man sehen, dass kein Ads-Request abgeschickt wird. In der C++ Applikation wird auch kein Fehler generiert. Zur Zeit der Artikelerstellung gibt es nach unserem Wissen noch kein Update von Borland welches diesen Fehler behebt.

Sie können als Workaround auch die AdsSyncReadIntegerVarReq benutzen. Der gelesene boolsche Wert befindet sich dann in der short variablen. Hier ein Beispiel:

void __fastcall TForm1::Button2Click(TObject *Sender)
{
   long     hVar = 0;

   WideString  VarName = "MyTask.Inputs.MyInput";
   int AdsErrCode = AdsOcx1->AdsCreateVarHandle(VarName, &hVar);

   if (AdsErrCode == 0)
   {
      short bAsShort = 0;
      AdsErrCode = AdsOcx1->AdsSyncReadIntegerVarReq( hVar, 1, &bAsShort);

      if (AdsErrCode == 0)
         Label2->Caption = bAsShort == 0 ? "FALSE" : "TRUE";
      else
         Label1->Caption = "AdsSyncReadBoolVarReq() error: " + IntToStr(AdsErrCode);

      AdsOcx1->AdsDeleteVarHandle(hVar);
    }
    else
       Label1->Caption = "AdsCreateVarHandle() error: " + IntToStr(AdsErrCode);
}


TwinCAT Kommunikation

Beckhoff Knowledge Base: Kommunikation

TwinCAT Kommunikation- Fremdgeräte

Datum | Artikel
13.04.2006 | Anbindung von XM3-Kartenleser der Firma Cross Point per RS485
30.06.2006 | Anbindung TwinCAT an Windows XP Media Center Edition
04.11.2008 | Anbindung TwinCAT an die Wetterstation der Firma Elsner
14.07.2009 | Anbindung TwinCAT an das Thermokon Bediengerät
04.11.2009 | Anbindung TwinCAT an das Maestro100Lite-Modem

Weitere Dokumentationen zur Kommunikation mit Fremdgeräten und die Anbindung Flash per ASP/ASP.NET finden Sie unter:
Beckhoff Information System -> TwinCAT -> TwinCAT System -> TwinCAT Connectivity -> TwinCAT ADS Beispiele:

Die Dokumentation zur Kommunikation mit Crestron finden Sie unter den TwinCAT Supplements: TwinCAT Crestron Server


TwinCAT NC

Datum | Artikel-ID. | Artikelauswahl
06.07.2001 | 01070501 | Positionsoffset
15.11.2001 | 01110502 | AX2000-B200 Drehmomentschnittstelle I
15.11.2001 | 01110503 | AX2000-B200 Drehmomentschnittstelle II
15.11.2001 | 01110504 | AX2000-B200 Drehmomentschnittstelle III
06.12.2001 | 01120505 | Softwareendschalter
07.11.2002 | 02110506 | AX2000 mit zyklischem CANopen Interface
22.07.2003 | 03070507 | AX2000 als Messstrecke

zurück zur TwinCAT Übersicht


Positionsoffset

Datum: 06.07.2001 Artikel-ID: 01070501

Frage:

Wie kann ich einer Achse einen "Positionsoffset" geben, der permanent aktiv ist? Durch das einfache Beschreiben von fActPosCorrection des Achsinterface funktioniert es nicht.

Antwort:

Die von Ihnen benötigte Funktion finden sie im Dialog Achse_ENC / Global / Nullpunktverschiebung Positionsoffset:


AX2000-B200 Drehmomentschnittstelle I

Datum: 15.11.2001 Artikel-ID: 01110502

Frage:

In welchen Betriebsarten kann die AX200-B200 Drehmomentschnittstelle betrieben werden?

Antwort:

Über das zyklische Interface kann entweder als Hauptbetriebsart oder eben als Nebenbetriebsart (Srom/Momentenreduzierung) ein maximaler Strom (entspricht Drehmoment) vorgegeben werden.

Dieser Zahlenwert ist normiert auf maximal 3280, das dem maximal möglichen Strom des Leistungsteils entspricht (DIPEAK). Also nicht wie fälschlich dokumentiert auf den parametrierbaren Spitzenstrom (IPEAK) oder den Nennstrom (ICONT). Im Antrieb limitierend wirken allerdings die parametrierten Werte für Spitzenstrom (IPEAK) und Nennstrom (DICONT. Auf Grund des kleinen Zahlenbereiches reicht es also aus nur die niederwertigsten zwei Bytes des ursprünglich vier Byte Wertes zu nutzen. Die aktuelle Strombegrenzung ist rücklesbar mit "m ILIMIT".

Begriffsdefinitionen:

IPEAK: Spitzenstrom des Stromreglers (Motor), der kleiner gleich dem Geräte-Spitzenstrom sein muss.
Default: 2 * ICONT;
Bereich: [ 0, 2 * DICONT) ]

ICONT: Motor-Nennstrom (auch mit "Irms" bezeichnet); Bereich: [ 10% von DICONT, max(DICONT, IPEAK) ]

DIPEAK: Verstärker-Spitzenstrom des Leistungsteils (Drive) und nicht des Motors Default: 2 * DICONT;

DICONT: Verstärker-Nennstrom des Leistungsteils (Drive)


AX2000-B200 Drehmomentschnittstelle II

Datum: 15.11.2001 Artikel-ID: 01110503

Frage:

Wie betreibe ich die AX2000-B200 Drehmomentschnittstelle als Hauptbetriebsart?

Antwort:

Als Hauptbetriebsart muss in der Variable "DriveCtrl0" der Wert 2 für die digitale zyklische Momentenschnittstelle (Stromregler) eingestellt werden, anstatt wie sonst üblich der Wert 0 für die digitale zyklische Geschwindigkeitsschnittstelle. Erstens die Verknüpfung der "DriveCtrl0" mit "nCtrli1" der NC trennen. "DriveCtrl0" mit einen PLC Variablen verknüpfen. Der Momentensollwert wird mittels der Variable "NominalTorque0" (normierter Wertebereich) vorgegeben. Der Wertebereich für diese Variable befindet sich zwischen -3280 und 3280 Digits (entsprechend ±3280 º ±100 % º ±DIPEAK). Hier wirkt der Stromwert nicht als Betragswerte, daher nur positive und negative Werte erlaubt. Zu beachten die Variable "NominalTorque" hat eine Länge von 4 Byte. Wird nur das Lo-Word verknüpft, wird die B-Komplimentumrechnung unzureichend durchgeführt. Zum Beispiel 0xFFF6(-10) im DWord 0x0000FFF6 entspricht dies dem Wert 65526. Die Betriebsartumschaltung (Hauptbetriebsart) wird sofort übernommen und wirkt instantan, unabhängig ob der Antrieb disabled oder enabled ist. Natürlich kann sich die Auswirkung nur im Zustand "enable" zeigen.

0x00001 Byte | "DriveCtrl0" [1] 0: digitaler Drehzahlregler 1: analoger Drehzahlregler 2: digitaler Stromregler 3: analoger Stromregler Modus [1] |  | TwinCAT NC Ausgang
0x00062 Byte | "NominalTorque0" [2] Normierung: 3280 = 100% = Leistungsteil Spitzenstrom (DIPEAK), nicht IPEAK oder ICONT Soll-Drehmoment [2] | Motorola | TwinCAT NC Ausgang
0x00044 Byte | "NominalTorque" [4] Normierung: 3280 = 100% = Leistungsteil Spitzenstrom (DIPEAK), nicht IPEAK oder ICONT Soll-Drehmoment [4] | Motorola | TwinCAT NC Ausgang
0x01062 Byte | "ActualTorque0" [2] Normierung: 3280 = 100% = Leistungsteil Spitzenstrom (DIPEAK), nicht IPEAK oder ICONT Ist-Drehmoment [2] | Motorola | TwinCAT NC Eingang


AX2000-B200 Drehmomentschnittstelle III

Datum: 15.11.2001 Artikel-ID: 01110504

Frage:

Wie betreibe ich die AX2000-B200 Drehmomentschnittstelle als Nebenbetriebsart zur Geschwindigkeitsschnittstelle?

Antwort:

Aktiv ist diese Funktionalität nur wenn die Variable DILIM auf 1 gesetzt wird. Der Momentensollwert (Stromregler) wird ebenfalls über die Variable "CurrentLimiting" (normierter Wertebereich) vorgegeben. Die Variable "CurrentLimiting" ist erst verfügbar nach dem das Variable Mapping "Variable I/O Data ..." aktiviert wurde. Daraufhin wird die Verknüpfung zur NC Achse getrennt. Die "Hardware-" und die "Software-Achsen" müssen erneut miteinander verknüpft werden.

.

Der Wertebereich für diese Variable befindet sich zwischen 0 und 3280 Digits (entsprechend 3280 º 100 % º DIPEAK). Hier wirkt der Stromgrenzwert als Betragswerte, daher nur positive Werte erlaubt.

0x002A2 Byte | "CurrentLimiting" [2] Normierung: 3280 = 100% = Leistungsteil Spitzenstrom (DIPEAK), nicht IPEAK oder ICONT Strombegrenzung [2] | Motorola | TwinCAT NC Ausgang
0x01062 Byte | "ActualTorque0" [2] Normierung: 3280 = 100% = Leistungsteil Spitzenstrom (DIPEAK), nicht IPEAK oder ICONT Ist-Drehmoment [2] | Motorola | TwinCAT NC Eingang


Softwareendschalter

Datum: 06.12.2001 Artikel-ID: 01120505

Frage:

Wie werden die Softwareendschalter in der PLC erfasst?

Antwort:

Zuerst sollten die Softwareendschalter in den Globalen Parametern einer Achse eingestellt werden. Zur jeder Richtung gehören zwei Parameter, zum Einen die Freigabe (Type BOOL Defaultwert FALSE) und zum Anderen der Wert (Type LREAL Defaultwert 0.0). Alternativ können die Werte auch zur Laufzeit, mit Hilfe der ADS Bausteine eingetragen werden. Damit wäre es möglich, die Softwareendschalter nur in einzelnen Betriebsarten zu nutzen (siehe Beispiel: SoftschalterADS.pro)

Versucht man nun, einen Auftrag außerhalb der angegebenen Grenzen abzusetzen, so bekommt man im System Manager (Loggerfenster) folgende Fehlermeldung:

In der PLC liefert der Funktionsblock AXACT (PlcNc.lib) auf der Ausgangsvariablen InstanzNamen.ErrID den Fehler 0x4461.
Arbeitet man dagegen mit den Handfunktionen des AXFNS-Bausteins, wird keine Fehlermeldung am InstanzNamen.ErrID ausgegeben. Das liegt daran, dass der Befehl von der NC zunächst ordnungsgemäß angenommen wurde. Eine permanente Überwachung findet mit den Achs-Bausteinen nicht statt. Für diesen Fall muss der Anwender die Überwachung der Softwareendschalter auf der PLC nachbilden. Zur Lösung dieser Aufgabe wird der Istwert und die Softwareendschalter der Achse benötigt (siehe Beispiel).


AX2000-B510 mit zyklischem CANopen Interface

Beckhoff Knowledge Base: TwinCAT NC

AX2000 mit zyklischem CANopen Interface

Datum: 07.11.2002 Artikel-ID: 02110506

Frage:

Wie ist ein AX2000-B510 bei Nutzung des zyklischen CANopen Interfaces zu konfigurieren?

Antwort:

Eine Anleitung zur Konfiguration finden Sie in der "TwinCAT System Manager - Referenz" unter: AX2000-B510

Beispiele:

SPS und System Manager Projektdateien für das Lesen bzw. Schreiben von AX2000 CANopen-Objekten.


AX2000 als Messstrecke

Datum: 22.07.2003 Artikel-ID: 03070507

Frage:

Wie ist ein AX2000als Messstrecke zu konfigurieren?

Antwort:

Aufbau : 1 Dig Eingang (Lichtschranke) tastet ein Werkstück ab.
Mit der positiven Flanke wird ein Trigger ausgeführt und mit der negativen Flanke wird ein Trigger ausgeführt.
Der digitale Eingang wird mit 5µs abgetastet. Der Latch ist erst nach 250µs (Regelzyklus des Drehzahlreglers) gespeichert.

Konfiguration: SR600:

TwinCAT:
I/O beim AX2000 das Variable Mapping aktivieren.

Achtung dabei wird die alte Verknüpfung NC- I/O gelöscht.

Die Achse anschließend neu verknüpfen:

Nach dieser Verknüpfung werden mehr Variablen verknüpft als beim Standardmapping:

(links Variables Mapping, rechts Standardmapping)

Programmierung auf der PLC:

1. Enable pos&neg Latch auf der NC

2. pos Flanke Latch ADSREAD.Port = 501 ADSREAD.Grp = 16#5200 + AxID ADSREAD.Offset = 16#201

3. neg Flanke Latch ADSREAD.Port = 501 ADSREAD.Grp = 16#5200 + AxID ADSREAD.Offset = 16#202

4. Ist der Latch aufgetreten wird das im AxInterface NC_to_PLC. NStateDWord bit 16 angezeigt.

5. Lesen des Latchwertes aus der NC ADSREAD.Port = 501 ADSREAD.Grp = 16#5100 + AxID ADSREAD.Offset = 16#205

Alternativ:

Abwarten bis der negativer Latch aufgetreten ist und dann die Differenz der beiden Latchpositionen auslesen. Lesen des Latchwertes aus der NC ADSREAD.Port = 501 ADSREAD.Grp = 16#5100 + AxID ADSREAD.Offset = 16#208


Digitale und analoge I/O's am AX2000-B200

Datum: 22.07.2003 Artikel-ID: 03070507

Frage:

Wie werden Digitale und analoge I/O´s am AX2000-B200 konfiguriert?

Antwort:

Der Ax2000 verfügt über vier digitale Eingänge:

Technischen Daten:

Logik | +24V / 7mA ausgelegt (SPS-kompatibel)
H-Pegel | +12...36V / 7mA
L-Pegel | 0...7V / 0 mA
Bezugsmasse | Digital-GND (DGND, Klemme X3/18)

Einstellung im Drive-Tool.

Die Funktionen können nach Bedarf gewählt werden. Soll nur der digitale Eingang abgefragt werden wird keine Funktion hinterlegt .

Die zwei digitalen Ausgänge des AX2000 können über das Lightbus-Interface (B200) beschrieben werden.

Technische Daten:

Beschaltung | DIGITAL-OUT1 und 2 Open-Collector, max. 30V DC, 10mA
Bezugsmasse | Digital-GND (DGND, Klemme X3/18)

Damit die Ausgänge von der SPS angesprochen werden können, soll das ASCII-Kommando O1Mode & O2Mode auf 23 gesetzt werden.

Anschließend EEPROM Speichern und Reset.

Die analogen Kanäle im Eingangsbereich können ohne spezielle Einstellung im Drive Tool genutzt werden.

Die analogen Ausgänge MONITOR1 & MONITOR2 können über das DPRAM der B200 Karte erst angesprochen werden, nachdem die ASCII-Kommandos ANOut1 und ANOut2 auf 6 gesetzt werden.

Die Auflösung der analogen Monitorausgänge beträgt 1,25mV/dig

Die Auflösung der analogen Eingänge beträgt 10V/404dig.

Im TwinCAT System Manager den Ax2000-B200 in den Mode "Variables I/O-Mapping" bringen. Daraufhin werden die bestehenden Verbindungen zu der NC-Achse gelöst. Der Anwender sollte danach die Verknüpfung wiederherstellen.

Für die digitalen und analogen Ein- und Ausgänge stehen im Prozessabbild der Box mit den entsprechenden Variablen zur Verfügung.


TwinCAT NC I

Datum | Artikel-ID. | Artikelauswahl
28.02.2001 | 01020601 | Interpreter aus der PLC verwalten

zurück zur TwinCAT Übersicht


Interpreter aus PLC verwalten

Datum: 28.02.2001 Artikel-ID: 01020601

Frage:

Wie wird der Interpreter aus der PLC heraus verwaltet?

Antwort:

Dazu gibt es in der Dokumentation TwinCAT NCI ein Beispielprogramm NCI_Test. Dort ist das Beispiel näher beschrieben.

Installation von NCI_Test

Hinweis:

Um diese Seiten lesen zu können, muss das vollständige Beckhoff Information System installiert sein.


TwinCAT PLC Control

Datum | Artikel-ID. | Artikelauswahl
05.12.2000 | 00120801 | Öffnen von *.pro Objekten
12.12.2000 | 00120802 | Checker für Arraygrenzen
12.06.2001 | 01060804 | BC9000: Kommunikationsfehler im Online Zustand
28.06.2001 | 01060807 | System Manager und *.pr6 Projekte
28.06.2001 | 01060808 | BC und *.pro Projekte
06.07.2001 | 01070809 | Fehlermeldung: Array zu groß
15.03.2002 | 02030810 | Parameter TwinCAT PLC Library PID
11.09.2002 | 02090811 | TwinCAT PLC Task-Intervallzeiten < 1ms
27.02.2003 | 03020812 | Remanente Daten beim CX1000
03.03.2003 | 03030813 | Kundenspezifische HTML-Hilfe zum SPS-Projekt an die TwinCAT PLC Control-Hilfe anhängen
18.08.2003 | 03080814 | Bausteinaufrufe werden in der Anzeige teilweise unten abgeschnitten

zurück zur TwinCAT Übersicht


Das Öffnen von *.pro Projekten

Datum: 05.12.2000 Artikel-ID:00120801

Frage:

Warum kann ich *.pro Projekte nicht mehr per Doppelklick z. B. im Explorer öffnen?

Antwort:

Es kann sein, dass bei %1 die doppelten Hochkommata fehlen:

D:\TwinCAT\Plc\TCatPlcCtrl.exe "%1"

Diese können wie nachfolgend beschrieben geändert werden.

Danach können die Projekte wieder mit einem Doppelklick geöffnet werden.


Checker für Arraygrenzen

Datum: 12.12.2000 Artikel-ID:00120802

Frage:

Wie werden die Grenzen eines Arrays geprüft?

Antwort:

Der Programmbaustein CheckBounds prüft automatisch alle Grenzen des Arrays in dem Projekt.


BC9000: Kommunikationsfehler im Online Zustand

Datum: 12.06.2001 Artikel-ID:01060804

Frage:

Im Online Zustand (eingeloggt über Ethernet/AMS) kommt es nach einiger Zeit immer zu der Meldung "Kommunikationsfehler, es wird ausgeloggt". Wie kann diese Meldung behoben werden?

Antwort:

Der Datenverkehr über die Ethernet Schnittstelle stockt, verringern Sie die Daten-Kommunikation.
a.) Halten Sie den zyklischen Datenverkehr an, oder vergrößern Sie die Taskzeit.
b.) Verringern Sie die Anzahl der offenen Fenster in der Online Darstellung.
c.) Loggen Sie sich über die serielle Schnittstelle ein.


System Manager und *.pr6 Projekte

Datum: 28.06.2001 Artikel-ID:01060807

Frage:

Warum kann der System Manager mein *.pr6 Projekt nicht einlesen?

Antwort:

Dieses Verhalten ist völlig korrekt. Eine *.pr6 Datei ist zur Programmierung des BCxxx vorgesehen, sie kann nicht im System Manager eingelesen werden.

Wenn im PLC Control die Zielplattform 'BC über AMS' oder 'BC seriell' angewählt wird, kann das Projekt nur unter *.pr6 gespeichert werden. s.u..

Damit der System Manager das Projekt einlesen kann, muss hier 'PC(i386)' angewählt werden. Dadurch ist es möglich, das Projekt als *.pro Datei zu speichern, die vom System Manager eingelesen werden kann.


BC und *.pro Projekte

Datum: 28.06.2001 Artikel-ID:01060808

Frage:

Warum kann ich in mein *.pro Projekt nicht die SPS herunterladen bzw. den richtigen SPS Typ auswählen??

Antwort:

Das Verhalten ist völlig korrekt.

Bei *.pro Projekten ist die SPS Funktionalität der Busklemmen Controller nicht verfügbar.

Dazu muss das Projekt als *.pr6 Datei gespeichert werden (Auswahl der Zielplattform : 'BC über ADS' oder 'BC seriell')


Parameter TwinCAT PLC Library PID

Datum: 15.03.2002 Artikel-ID:02030810

Frage:

Wann werden die Änderungen an den Eingängen fKp, fTn, fTv, fTd des Funktionsbausteins des PID Reglers wirksam?

Antwort:

Die Änderungen an den Eingangsparametern fTn, fTv und fTd werden nur bei einer steigenden Flanke am bInit-Flag übernommen.
Änderungen am Eingangsparameter fKp hingegen werden innerhalb des Funktionsbausteins instantan übernommen.


Ramanente Daten beim CX1000

Beckhoff Knowledge Base: PLC Control

Remanente Daten beim CX1000

Datum: 27.02.2003 Artikel-ID:03020812

Frage:

Wie kann man beim CX1000 Daten einrichten, welche einen Neustart überleben?

Antwort:

Da der CX100x Standardmässig mit einem 8kByte NOVRAM ausgeliefert wird, kann man dieses zum Sichern von Betriebsdaten bei externem Spannungsausfall/Neustart verwenden. Hierzu sind die zu sichernden Variablen im PLC Programm als "normale" Ausgänge (speziell eine Deklaration als VAR RETAIN oder VAR PERSISTENT ist hierbei nicht zulässig) zu deklarieren (z.B. mit AT %Q* ) und im System Manager muß beim NOVRAM-"Gerät" die Checkbox "Auto Init linked PLC Outputs" aktiviert werden. Außerdem müssen die neuen -"sicheren"- SPS-Variablen mit angelegten NOVRAM-Ausgängen verknüpft werden (siehe hierzu auch: TwinCAT System Manager -> "Algemeines NOV-RAM").


Kundenspezifische HTML-Hilfe zum SPS-Projekt an die TwinCAT PLC Control-Hilfe anhängen

Datum: 25.03.2003 Artikel-ID:03030813

Frage:

Wie kann ich eigene HTML-Hilfe in den Baum der TwinCAT PLC Control-Hilfe einbinden, so daß ich aus der PLC Control eigene Hilfeseiten aufrufen kann?

Antwort:

Man kann bis zu 5 eigene CHM-Dateien in den Baum, auf der gleichen Ebene, vor der eigentlichen TwinCAT PLC Doku hängen.

Folgende Schritte müssen gemacht werden:

1. Bis zu 5 neue CHM-Files generieren. Diese müssen folgende Namen besitzen:

TcPlcControlUser1.chm

TcPlcControlUser2.chm

TcPlcControlUser3.chm

TcPlcControlUser4.chm

TcPlcControlUser5.chm

2. Die CHM-Files in den passenden TcInfoSys-Sprachordner kopieren:

z.B. \1031 für die deutsche Hilfe und \1033 für die englische.

Wenn keines der CHM-Files vorhanden ist wird dieses auch nicht angezeigt. Hier können Sie komplette Sourcen für ein Kundenspezifisches CHM-File entpacken. Diese können beliebig modifiziert werden.

TwinCAT PLC Control-Hilfe mit 3 Kundenspezifischen Dokumenten.


Bausteinaufrufe werden in der Anzeige teilweise unten abgeschnitten

Datum: 18.08.2003 Artikel-ID:03080814

Frage:

Warum werden FUNCTION und FUNCTION_BLOCK-Aufrufe in den grafischen Programmiersprachen (z.B. KOP und FUP) teilweise unten abgeschnitten?

Antwort:

In den PLC Control-Einstellungen muß für das Projekt ein True-Type Font (TTF) bzw. Microsoft Font ausgewählt werden (z.B. Microsoft San Serif, nicht aber MS Sans Serif), damit das PLC Control die Anzeige richtig reskalieren kann. Die eingestellte Schriftart lässt sich ändern unter:

Projekt | Optionen... | Editor

nach Betätigung der Schaltfläche Schrift...


TwinCAT System

Datum | Artikel-ID. | Artikelauswahl
12.12.2000 | 00121101 | Shutdown NT
12.12.2000 | 00121102 | Retain Daten mit TwinCAT 2.7
12.12.2000 | 00121103 | Automatisches Einloggen in Windows NT
12.12.2000 | 00121105 | Systemleistung / Echtzeiteinstellung
27.06.2001 | 01061106 | Nach Shutdown aus der SPS wird das System heruntergefahren und neu gebootet
28.06.2001 | 01061107 | Deaktiviertes Bootprojekt
28.06.2001 | 01061108 | Installation/Deinstallation von TwinCAT
28.06.2001 | 01061111 | Systemlast
13.07.2001 | 01071113 | Systemdiagnose
29.11.2001 | 01111114 | Automatischer Systemstart (Auto Boot) wird nicht durchgeführt
05.12.2001 | 01121115 | Fehler-Meldung Real-Time System beim ersten Start
11.09.2002 | 02091119 | Export der Systeminformationen
13.09.2002 | 02091120 | Upgrade TwinCAT 2.8
20.09.2002 | 02091121 | TwinCAT Registrierung auf Raid System


Shutdown NT

Datum: 12.12.2000 Artikel-ID:00121101

Frage:

Wie ist es möglich, aus der PLC ein Shutdown des Windows NT Betriebssystems durchzuführen?

Antwort:

Man muss ein AdsWriteCtl mit

ads state = ADSSTATE_SHUTDOWN =12

und

device state = 0 für Shutdown

oder

device state = 1 für Restart

verwenden.

ShutdownFB

RestartFB

Weitere Informationen hierzu finden Sie in der Dokumentation: TwinCAT PLC Library: Utilities


Retain Daten mit TwinCAT 2.7

Datum: 11.12.2000 Artikel-ID:00121102

Frage:

Was ändert sich unter TwinCAT 2.7 bzgl. der RETAIN Daten?

Antwort:

In allen Version vor 2.7 wurden immer alle Variablen in einer Datei abgespeichert. Beim Laden wurden dann die RETAIN Variablen herausgefiltert. Es gab also keine Begrenzung für die RETAIN Variablen.

In der Version 2.7 werden die RETAIN Variablen in einem eigenen Bereich gespeichert. Die Größe dieses Bereichs wird unter Projekt/Optionen/TwinCAT eingestellt.

Damit die Einstellung gültig wird kann es notwendig sein, zunächst die Einstellung vorzunehmen, danach zu speichern und schließlich das Projekt erneut aufzurufen.


Systemleistung / Echtzeiteinstellungen (Realtime Settings)

Datum: 12.12.2000 Artikel-ID:00121105

Frage:

Was bedeutet die Anzeige der CPU Zeit im NT Task Manager?

Antwort:

Der NT Task-Manager stellt dem Bediener u.a. eine Liste der laufenden Prozesse und deren CPU-Zeitverbrauch dar. Diese Darstellung ist mit laufendem TwinCAT differenzierter zu interpretieren:

Windows NT kann nicht die Auslastung der CPU durch das TwinCAT System anzeigen. Sie sehen nur im Dialog "Echtzeit" die reale Belastung der CPU durch das TwinCAT System.

Die TwinCAT-Echtzeiterweiterung stellt dem NT Betriebssystem Rechenzeit zur Verfügung. Dieser Teil wird vom NT-Betriebssystem als 100% CPU-Zeit gewertet. Im NT Task-Manager bezieht sich die Anzeige der CPU-Zeit von Prozessen somit nicht auf die CPU-Zeit, sondern auf die verbleibende Zeit, welche NT zur Verfügung steht.

Beispiel:

Sollte TwinCAT eine konstante Auslastung von 35% der CPU benötigen (siehe Einstellungen in "Echtzeiteinstellungen"),

und ein weiterer Prozess im NT-Task-Manager mit 97% "CPU-Zeit" angezeigt werden,

so würde dieser Prozess eigentlich 63,05% der wirklichen CPU Zeit verbrauchen.


Nach Shutdown aus der SPS wird das System heruntergefahren und neu gebootet

Datum: 27.06.2001 Artikel-ID:01061106

Frage:

Ich führe einen Shutdown aus der SPS mit Hilfe des NT_Shutdown-Funktionsbausteins durch. Unter NT 4.0 ist der PC beim Dialog "Sie können den PC ausschalten... " stehen geblieben. Nach einem Update auf Windows 2000 wird das System zwar runtergefahren, bootet aber anschließend neu.

Antwort:

Möglichkeit 1 (emfohlen!):

Beim Aufruf von NT_SHUTDOWN führt TwinCAT standardmäßig ein Shutdown mit POWER-OFF. Unterstützt ein PC diese Funktionalität nicht, dann kann diese durch einen Eintrag in der Windows-Registry deaktiviert werden. Folgender Wert muss in die Registry eingetragen werden:

"DisableACPIPowerOff" REG_DWORD = 0x00000001 in Registry unter: "HKEY_LOCAL_MACHINE\SOFTWARE\Beckhoff\TwinCAT\System"

Möglichkeit 2:

Unter Windows 2000 kann der PC mit dieser Funktion abgeschaltet werden. Es ist aber nur dann möglich, wenn das Mainboard, das Netzteil diese Funktion unterstützt und der PC als ACPI-fähig bei der Betriebssysteminstallation erkannt wurde. In vielen Fällen wird der PC nicht als ACPI-fähig erkannt, obwohl laut Hersteller die Komponenten die Anforderungen erfüllen. Die Ursache dafür liegt darin, dass während der Windows 2000 Installation in einer Liste nach der erkannten BIOS-Version gesucht wird. Wird die erkannte BIOS-Version nicht in der Liste gefunden, dann wird das BIOS als nicht ACPI-fähig eingestuft. Die Liste TXTSETUP.SIF befindet sich im Windows 2000 Installationsordner. Durch folgendes Vorgehen wird in den meisten Fällen das ACPI-BIOS als solches bei der Installation erkannt. Vergessen Sie auch nicht im BIOS die ACPI-Funktionen vor der Windows 2000 Installation zu aktivieren.

1. Kopieren Sie alle Windows 2000 Installationsdateien auf die Festplatte;

2. Heben Sie den Schreibschutz der Datei TXTSETUP.SIF auf und öffnen Sie diese im Notepad;

3. Suchen Sie folgenden Abschnitt in der Datei auf:

; [ACPIOptions]
; This section lists options that affect the installation of ACPI on x86
;
; ACPIEnable
; 0 - ACPI will be disabled at install time regardless of the BIOS
; 1 - ACPI will be enabled at install time if an ACPI BIOS is present
; 2 - ACPI will be enabled based on the GoodACPIBios list, the NWACL
; and ACPIBiosDate
;
; ACPIBiosDate = mm,dd,yyyy
; Supplies the date that a BIOS must have to be considered good if it is
; not in the GoodACPIBios list. If a BIOS has a date greater than this and
; is not in the NWACL list, then it will be used unless ACPIEnable = 0
;
[ACPIOptions]
ACPIEnable = 2
ACPIBiosDate = 01,01,1999

[NWACL]
FujitsuV66NAS=FujitsuV66NAS
ABitBP6=ABitBP6
ASUSP2B-D=ASUSP2B-D

4. Ändern Sie die markierte Zeile zu:

[ACPIOptions]
ACPIEnable = 1
ACPIBiosDate = 01,01,1999

Damit wird in der Liste nicht mehr nach der BIOS-Version gesucht.

5. Speichern Sie die Änderungen.

6. Rufen Sie Setup von der Festplatte auf und installieren Sie Windows 2000 neu.

Ob das System als ACPI-fähig erkannt wurde kann unter Settings ->Control Panel-> System ->Hardware ->Device Manager -> Computer erkannt werden.


Deaktiviertes Bootprojekt

Datum: 28.06.2001 Artikel-ID:01061107

Frage:

Warum wird das Bootprojekt beim Autostart nicht gestartet?

Antwort:

Wenn beim Autostart das Bootprojekt nicht gestartet werden kann bzw. der Startvorgang abgebrochen wird ( z.B. die Spannung wird abgeschaltet oder es kommt zum Absturz "Dr. Watson, BlueScreen" ), wird das Bootprojekt deaktiviert. Das System schaut auf die Registry.

HKEY_Local_Machine / Software / Beckhoff / TwinCAT / System / SysAutoStart sollte immer auf 1 stehen.

Diese Sicherheitsfunktion kann nicht abgeschaltet werden, es ist aber möglich diesen Wert durch Ihre Oberfläche zu setzen.

Damit könnte das Problem des Abschaltens des Rechners beim NT-Start gelöst werden.


Installation/Deinstallation von TwinCAT

Datum: 28.06.2001 Artikel-ID:01061108

Frage:

Bei der Deinstallation von TwinCAT Build 420 und der Installation von TwinCAT 450 auf Win2000 kann folgende Fehlermeldung auftreten:
" Einige Dateien sind zum Löschen beim nächsten Reboot vorgemerkt. Bitte führen Sie erst einen Reboot durch."

Wie wird dieser Fehler behoben?

Antwort:

In der Registry muss ein Key gelöscht werden:

Unter HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager" muss ein Key "PendingFileRenameOperations" stehen.
Wenn keine Beckhoff Komponenten dort aufgeführt sind, kann dieser Key einfach gelöscht werden.


Systemlast

Beckhoff Knowledge Base: TwinCAT System

Datum: 28.06.2001 Artikel-ID: 01061111

Frage:

Wie kann ich die Auslastung der CPU durch das TwinCAT System in etwa ermitteln?

Antwort:

Für TwinCAT kann angenommen werden:

Die Zykluszeit und die Ausführungszeit bestimmen die Systemlast !

1K SPS Befehle benötigen (Ausführungszeit) ca. 23 µs auf einer CPU AMD K6-2 233 MHz und 15 µ auf einem Pentium III 600.

Rechnung:

Ausführungszeit / Zykluszeit *100 = Systemlast (%)

Pro Achse sind ca. 13 µs Rechenzeit (auf Pentium III Systemen) zusätzlich anzunehmen.


Systemdiagnose

Datum: 13.07.2001 Artikel-ID: 01071113

Frage:

Gibt es eine Systemdiagnose (z. B. Was passiert bei einer Zykluszeitüberschreitung ...)?

Antwort:

Bei einer Zykluszeitüberschreitung reagieren die Watchdogfunktionen ( nach 100ms) der Klemmen. Die Art und Weise wie auf einen solchen Fehler reagiert wird, ist mit der KS 2000 Software oder über TwinCAT einstellbar. Bei Profibus ist dieses auch über den Busmaster möglich


Automatischer Systemstart (Auto Boot) wird nicht durchgeführt

Datum: 29.11.2001 Artikel-ID: 01111114

Frage:

Nach einem nicht ordnungsgemäßen Hochfahren des Betriebssystems (z.B. durch Spannungsausfall) wird der Automatische Systemstart von TwinCAT beim nächsten NT-Neustart nicht mehr ausgeführt. Wie kann dies verhindert, bzw. behoben werden?

Antwort:

Ab TwinCAT 2.7 Build 456 kann ein zusätzliches Flag in der Registry "HKLM\Software\Beckhoff\TwinCAT\System\ DWORD "ForceSysAutoStart" gesetzt werden, welches ein Rücksetzen des Auto Start Flags und damit das Unterbrechen der Autobootfunktion verhindert.

Beim TwinCAT System Start (und nur dann!) setzt der TwinCAT System Service das AutoBoot Flag vor dem Initialisieren der Echtzeitfunktionen (PLC, NC, IO, etc.) auf FALSE. Falls in dieser Phase das System nicht fehlerfrei hochläuft, wird der Start des Echtzeitsystems beim nächsten NT Neustart nicht ausgeführt.

Falls das System jedoch die Initialisierungsphase übersteht, was normalerweise der Fall ist, wird das Autoboot Flag wieder auf den vorher eingestellten Wert gesetzt, unabhängig davon, ob Initialisierungsfehler aufgetreten sind.


Fehler-Meldung Real-Time System beim ersten Start

Datum: 05.12.2001 Artikel-ID: 01121115

Frage:

Bei dem Versuch TwinCAT nach der Installation auf einem Rechner erstmals zu starten erscheint folgende Fehlermeldung:

Wie kann der Fehler behoben werden?

Antwort:

Der Fehler tritt auf, wenn sich in dem betreffenden Rechner ein Multiprozessorboard befindet und die Multiprozessorversion von Windows (NT, 2000, XP) installiert ist.
Zur Behebung des Fehlers müssen Sie von den Systemdateien hal.dll und ntoskrnl.exe zunächst eine Sicherungskopie anlegen. Anschließend kopieren Sie die Dateien hal.dll und ntoskrnl.exe von einem passenden Singleprozessorsystem, welches das gleiche Betriebssystem in der gleichen Landessprache mit gleichen Servicepacks verwendet, auf dem TwinCAT läuft, an den entsprechenden Ort in ihrem Rechner. Danach ist ein Start des TwinCAT Systems wieder möglich.

Hinweis:

Die betreffende Fehlermeldung ist ab TwinCAT 2.7 Build 502 implementiert worden. Bei TwinCAT 2.8 wird dieser Fehler ab Build 708 gemeldet.

Vor der Implementation machte sich der Fehler durch eine maximale Auslastung der Echtzeit bemerkbar, ohne dass ein Programm geladen war.


Export der Systeminformationen

Datum: 11.09.2002 Artikel-ID: 02091119

Frage:

Wie können die PC Systeminformationen unter den Betriebssystemen Windows NT / 2000 / XP exportiert werden?

Antwort:

Betriebssystem Microsoft Windows NT

Um die Systeminformationen des PC zu exportieren, ist unter Microsoft Windows NT 4.0 durch Ausführen von Start | Ausführen.. im dann erscheinenden Eingabefenster der Dateiname msinfo32.exe einzugeben.

Anschließend erscheint nachstehender Dialog, bei welchem File | Export.. auszuwählen ist, um die Systeminformationsdatei, wie im Bild gezeigt, zu exportieren.

Hinweis:

Sollte es nicht möglich sein, die Anwendung Systeminformation per msinfo32.exe unter Start | Ausführen... zu starten, so lassen Sie sie bitte mit Hilfe von: Start | Suchen.. | Dateien und Verzeichnisse.. suchen und führen sie anschließend, durch Doppelklick auf die gefundene Datei, aus.

Betriebssystem Microsoft Windows 2000 Professional

Unter Microsoft Windows 2000 ist der Dialog "Computerverwaltung" zu öffnen. Dies kann auf unterschiedliche Weise geschehen, z.B. unter Aufruf von:

Start | Einstellungen | Systemsteuerung | Verwaltung | Computerverwaltung
Nach dem Ausführen erscheint folgender Dialog, in welchem der Baumeintrag Systeminformationen auszuwählen ist:

Bei einem Klick mit der rechten Maustaste auf den markierten Eintrag Systeminformationen erscheint ein Dialog mit obenstehendem Menüeintrag: Als Textdatei speichern...
Wie der Name schon sagt, exportiert diese Funktion die Systeminformationen in eine Textdatei mit der Endung *.txt..

Alternativ kann auch unter Windows 2000 unter Start | Ausführen... der Dateiname msinfo32.exe eingegeben werden. Im erscheinenden Dialog Systeminformationen wird dann ebenfalls durch Ausführen von Vorgang | Als Textdatei speichern... das Speichern der Systeminformationen ermöglicht.

Betriebssystem Microsoft Windows XP Home/Professional

Auch unter Microsoft Windows XP kann durch die Eingabe von: msinfo32.exe innerhalb von Start | Ausführen... der Dialog für die Systeminformationen gestartet werden. Durch die Auswahl von Exportieren..., wie im nachfolgenden Bild gezeigt, können auch hier die Systeminformationen in eine Textdatei mit der Dateiendung *.txt exportiert werden.

Betriebssystem Microsoft Windows CE.NET

Die Systeminformationen eines Embedded-Gerätes mit Microsoft Windows CE.NET können mit Hilfe der Remote Tools ermittelt und exportiert werden.

Weitere Informationen hierzu finden Sie im MSDN in der Rubrik: Remote System Information.


Upgrade TwinCAT 2.8

Datum: 13.09.2002 Artikel-ID: 02091120

Frage:

Was ist bei einem Upgrade von TwinCAT 2.7 auf TwinCAT 2.8 zu beachten?

Antwort:

PLC:

Bei der Umstellung der PLC gibt es einige Dinge zu beachten:

  • Es gibt einige neue Begriffe die als Schlüsselworte ab der Version 2.8 geschützt sind. Dies sind:
    • ACTION
    • END_ACTION
    • LINT
    • LWORD
    • ULINT
    • WSTRING

    Diese Begriffe dürfen in SPS Programmen nicht mehr als Variablennamen verwendet werden.

  • SFC Actions dürfen nicht mehr von anderen Bausteinen heraus aufgerufen werden. Der Compiler generiert einen Fehlercode 4350.
  • Eine SFC Action darf nicht in mehreren hierarchisch unterschiedlichen Ebenen verwendet werden. Der Compiler generiert einen Fehlercode 4368.
  • Eine CASE Anweisung mit mehr als einem ELSE Zweig wird vom Compiler erkannt und mit einem Fehler (Fehlercode 4274) abgewiesen.
  • Beim CFC Editor wird jetzt streng geprüft, ob ein Ausgang und eine VAR_IN_OUT Variable auch wirklich beschreibbar ist. (Fehlercodes 4346 und 4060).
  • Beim FBD/LD Editor wird jetzt streng geprüft, ob eine VAR_IN_OUT Variable auch wirklich beschreibbar ist. (Fehlercodes 4060).
  • Der ADR Operator ist nicht für Bit-Variablen (lokierte BOOLs) möglich (Fehlercode 4031). Um eine 'Adresse' einer Bitvariablen zu erhalten, muß der neue Operator BITADR verwendet werden. Dieser liefert die Anzahl Bits vom Beginn des Speichersegments. Also keine physikalische Adresse.
  • Der ADR Opterator ist auch nicht anwendbar für Konstanten, wenn die Option 'Konstanten ersetzen' aktiviert worden ist (Fehlercode 4035). Diese Option wird kann unter den Projektoptionen/Übersetzungsoptionen aktiviert/deaktiviert werden.
  • Unvollständige Stringkonstanten werden mit der Version 2.8 beanstandet. Z.B. führt der String '1$1' zu einem Fehler (Fehlercode 3908). Konstanten müssen mit $ müssen zwei Zeichen lang sein.
  • Bei SEL und MUX wird auf mögliche Seiteneffekte hingewiesen. Es wird eine Warnung 1505 generiert. Der Code vor dem nicht schaltenden Zweig wird nicht ausgeführt! Dies ist ähnlich einem IF..THEN..ELSE..END_IF zu interpretieren. Abhängig von der schaltenden Variablen wird nur ein Zweig durchgerechnet.
  • Um Überschreitungen von Sub-Range-Typen zur Laufzeit abzufragen gibt es zwei neue Funktionen:
  • CheckRangeSigned: Für alle vorzeichenbehafteten Typen. S. PLC Control Dokumentation.
  • CheckRangeUnsigned: Für alle nicht vorzeichenbehafteten Typen. S. PLC Control Dokumentation.
  • Wird die Konstante 0 als Divisor benutzt, so erzeugt der Compiler eine Fehlermeldung (4034).
  • Konstanten werden nach einem Online Change immer auf den neuen Wert initialisiert unabhängig von der Option 'Konstanten ersetzen'.
  • In einer Bibliothek darf es keinen Baustein mit dem Namen PLC_PRG geben. Der Compiler generiert eine Warnung 1900.
  • In einer externen (C) Bibliothek sind keine Programme mit Parametern erlaubt. Der Compiler generiert eine Meldung 1902.
  • Mit der Version 2.8 gibt es eine Reihe von neuen System-Bibliotheken. Die alten System-Bibliotheken können weiter verwendet werden, die neuen bieten aber viele Vorteile. Diese Vorteile sind eine bessere Kapselung, eine leichtere Erweiterbarkeit, eine Versionsverwaltung, eine automatische Generierung von Abhängigkeiten. Die neuen Bibliotheken enthalten alle Bausteine, die auch in den alten Bibliotheken vorhanden waren. Näheres s. PLC Control Dokumentation.

System Manager:
  • Der System Manager liest jetzt nicht mehr das SPS Projekt direkt (<Projektname>.pro) ein, sondern die bei der Compilation entstandene <Projektname>.tpy Datei. Diese XML Datei enthält alle Variablen und Datenstrukturen der SPS.
  • Der System Manager generiert eine Datei <Projektname>.tpa, wenn im PLC Control Variablen mit unspezifierten Adressen (%I*, %Q*) gab. Diese Datei wird beim nächsten Compile vom PLC Control eingelesen.


TwinCAT Registrierung RAID System

Datum: 20.09.2002 Artikel-ID: 02091121

Frage:

Wie verhält sich die TwinCAT Registrierung auf einem Raid System wenn Festplatten ausfallen und/oder ausgetauscht werden?

Antwort:

Beim Installieren von TwinCat wird der Windows Disk Administrator gestartet, welcher eine ID (ausserhalb des Datenbereichs) auf die Festplatte schreibt. TwinCat generiert u.a. aus dieser Id eine System Id, wovon der zulässige TwinCat Registrierungscode abhängt. Beim Spiegeln der HDD durch einen RAID Controller werden auch die Bereiche ausserhalb des Datenbereichs –also auch die Festplatten Id- kopiert, sodass sich keine Probleme mit der Registrierung ergeben.


TwinCAT: System Manager

Datum | Artikel-ID. | Artikelauswahl
03.11.2000 | 00110901 | Fehler beim Einlesen eines IEC 61131-3 Projektes
03.11.2000 | 00110902 | BlueScreen beim Start des System Managers
03.11.2000 | 00110906 | K-Bus Reset aus TwinCAT
03.11.2000 | 00110907 | Diagnosebeispiel BK8x00
09.11.2000 | 00110908 | GSD und EDS Boxen anfügen
10.11.2000 | 00112102 | Firmware Update bei Hilscherkarten
11.12.2000 | 00120910 | Siemens S7 315-DP2 als Profibus Slave unter TwinCAT
12.06.2001 | 01060912 | BC9000: Der ErrCounter zählt hoch
12.06.2001 | 01060913 | BC9000: Adresse der SPS Busklemmen
28.06.2001 | 01060807 | System Manager und *.pr6 Projekte
23.07.2001 | 01070914 | Klemmenkonfiguration / GSD Datei
06.12.2001 | 01120915 | Wartung APC / USV
21.02.2003 | 03020916 | TwinCAT Echtzeit-Ethernet Treiber - Installation

zurück zur TwinCAT Übersicht


Fehler beim Einlesen eines IEC 61131-3 Projektes

Datum: 03.11.2000 Artikel-ID: 00110901

Frage:

Wie behebe ich den Fehler beim Einlesen eines IEC 61131-3 Projektes?

Antwort:

Zu dieser Fehlermeldung kann es kommen, wenn das Projekt kennwortgeschützt ist. Durch die Aufhebung des Kennwortschutzes ist das Einlesen des IEC Projektes wieder möglich.

Dazu muss zunächst das Kennwort im TwinCAT PLC Control gelöscht werden. In der Menüleiste befindet sich unter 'Projekt '-> 'Optionen' folgende Dialogbox:

In der Kategorie Kennworte ist das Kennwort zu löschen. Anschließend ist es erforderlich, das Projekt neu zu übersetzen, unter 'Projekt' -> 'Alles übersetzen'. Danach muss das Programm erneut gespeichert werden.

Jetzt kann das Projekt im System Manager problemlos eingelesen werden.


BlueScreen beim Start des System Managers

Datum: 03.11.2000 Artikel-ID: 00110902

Frage:

Wodurch kann ein möglicher BlueScreen beim Start des System Managers behoben werden?

Antwort:

Wenn es bei Start des System Managers zu einem BlueScreen kommt, kann das an den Einstellungen der verwendeten Grafikkarte liegen. Bei der ATI Grafikkarte müssen die Farben von TRUE COLOR auf 65536 gesetzt werden.


K-Bus Reset aus TwinCAT

Datum: 03.11.2000 Artikel-ID: 00110906

Frage:

Wie kann der K-Bus aus TwinCAT zurückgesetzt werden?

Antwort:

Wenn eine Klemme gezogen wird und der Koppler nach dem Stecken der Klemme wieder anlaufen soll, muss im Control0 des BK2000 eine 0x80 geschrieben werden. Damit läuft der Koppler wieder an.

Achtung:

Bleibt die 0x80 im Control stehen ist das Auto Reset immer aktiv. Geht ab BK2000 Version BE!

Weitere Informationen hierzu finden Sie in der TwinCAT I/O to ring 3 Applications Dokumentation


Diagnose Beispiel BK8x00

Datum: 13.12.2000 Artikel-ID: 00120907

Frage:

Wie kann eine Klemmendiagnose beim BK8x00 unter TwinCAT durchgeführt werden?

Antwort:

Um eine Klemmendiagnose ( z.B. Überlauf bei einer Analogen Klemme ) in der TwinCAT auszuwerten, ist es notwendig im System Manager auf der Karteikarte BK8x00 die Diagnose einzuschalten.

Es wird ein weiterer Buskopplereingang angezeigt ( DiagState)

Bit 15 gibt an ob ein Fehler aufgetreten ist oder nicht

Bit 14 u.
Bit 13 u.
Bit 12 geben einen erweiterten Diag. Code an (siehe Klemmen Dokumentation)

Bit 11 u.
Bit 10 geben den Diag. Code an (siehe Klemmen Dokumentation)

Bit 9 u.
Bit 8 zeigen den Kanal an

Bit 7-0 zeigen die Klemmennummer an.


GSD- und EDS-Boxen anfügen

Datum: 09.11.2000 Artikel-ID: 00110908

Frage

Wie binde ich eine GSD, bzw. EDS Datei in den System Manager ein?

Antwort:

Bei den Feldbussystemen Profibus und DeviceNet gibt es gerätespezifische Konfigurationsdateien, die vom Hersteller der jeweiligen Hardware zur Verfügung gestellt werden. Sie dienen zur Einbindung dieser Fremdgeräte in beliebige Steuerungssysteme, welche den jeweiligen Feldbus unterstützen. Bei Profibus werden sie als GSD (Geräte-Stamm-Daten) und bei DeviceNet als EDS (Electronic Data Sheet) -Dateien bezeichnet.

Nach Anwahl von Box Anfügen... erscheint, abhängig vom gewählten Feldbussystem (hier Profibus), im Baum unter Verschiedenes ein Auswahldialog für 'Allgemeine Profibus Box. (GSD)'.

Bei DeviceNet würde hier dementsprechend 'Allgemeine DeviceNet Box (EDS)' erscheinen.

Danach erscheint dann ein Windows-Dialog zur Auswahl der jeweiligen Datei.

Im oberen Bild stehen GSD Dateien, die der Hersteller dieser Box zur Verfügung stellt, zur Auswahl. Nach der Selektion den Öffnen Button betätigen, um das Gerät in die System Manager Konfiguration aufzunehmen.

Wichtig:
Für die GSD bzw. EDS-Dateien sind die Hersteller der jeweiligen Hardware zuständig, d.h. die Beckhoff Automation GmbH stellt keine GSD/GSE (Geräte-Stamm-Daten in englischer Sprache) und EDS-Dateien für Fremdgeräte zur Verfügung oder übernimmt Gewähr für deren Funktion.

Gerätebeschreibung

Durch den spezifizierten Aufbau der GSD/GSE- bzw. EDS-Dateien (spezifiziert durch die jeweiligen Nutzerorganisationen (PNO bzw. ODVA)), ist es dem TwinCAT System Manager möglich die Geräteinformationen (Hersteller, Gerätetyp, ..) auszulesen und darzustellen. Dies geschieht im rechten Dialog Allgemein bei angewähltem Gerät im Baum.

Innerhalb dieses Dialoges findet man den Gerätenamen, den Typ, Hersteller und die Revisionsnummer der GSD/GSE bzw. EDS-Datei. Vor allem letztere könnte sich bei Unstimmigkeiten als wichtig erweisen.
Zusätzlich gibt es eine "Checkbox" zum disablen des Gerätes, d.h. bei angewählter Option wird das Gerät auf Treiberseite nicht mit in die aktuelle Zusammenstellung des Feldbus-Telegramms aufgenommen, kann aber trotzdem Hardware-seitig in der Konfiguration verbleiben, solange keine Adressüberschneidung mit anderen Geräten vorliegt.

Kompakte und Modulare Geräte

Die eingebundenen Fremdgeräte können kompakt oder modular sein. Bei einem kompakten Gerät ist die Länge der Ein- und Ausgangsdaten, die über den Feldbus übertragen werden, festgelegt. Bei einem modularen Gerät ist die Anzahl der Ein- und Ausgangsdatenbytes des Geräts konfigurierbar. Nähere Informationen dazu finden Sie in der Dokumentation TwinCAT System Manager.


Siemens S7 315-DP2 als Profibus Slave unter TwinCAT

Datum: 11.12.2000 (05/01) Artikel-ID: 00120910

Frage:

Wie kann ich eine CPU 315-DP2 als Slave im TwinCAT System Manager betreiben?

Antwort:

Parametrierung der S7 315-DP2

Um eine Siemens S7 CPU 315-DP 2 als Slave unter TwinCAT zu betreiben, muss zunächst einmal die S7 SPS richtig parametriert werden. Dazu muss im Simatic Hardware Konfigurator die S7 CPU auf die Betriebsart Slave umgestellt werden. Siehe Bild unten

In den Karteireiter Eigenschaften - DP-Slave gelangt man über die 'Objekteigenschaften' der integrierten Profibus Anschaltbaugruppe in der S7 315-DP2 (im Bild blau markiert).

Als Nächstes werden die 'Netzeinstellungen' vorgenommen. Hierbei ist zu beachten, dass das richtige Profil für den Profibus anwählt wird, danach richtet sich auch die Baudrate für den Profibus. Bei der Auswahl dieser Parameter sind alle im Bus befindlichen Teilnehmer zu berücksichtigen. In den Karteireiter 'Netzeinstellungen' gelangen Sie über 'Eigenschaften - DP-Slave' -> 'Allgemein' -> 'Eigenschaften' -> 'Parameter' ->'Eigenschaften' -> 'Netzeinstellungen'.

Im Karteireiter 'Parameter' ist die Eingabe der Busadresse und die Auswahl des Subnetzes erforderlich.

Konfiguration der S7 CPU 315-DP2

Zum Schluss muss die CPU konfiguriert werden. Hier wird das Prozessabbild zwischen Slave und Profibus eingerichtet. Unter E/A wird gewählt zwischen Ein- und Ausgängen . Adr... gibt die Startadresse des Prozessabbildes an. Der Eintrag Diag... wird vom System vergeben. Die letzten drei Einträge beschreiben die Länge des Abbildes, die Einheit und die Datenkonsistenz. Es ist ratsam, die Konsistenz auf die gewählte Einheit zu beziehen ( Byte oder Word), da bei einer Konsistenz über 2 Wörter spezielle Funktionen im S7 Programm eingebunden werden müssen (SFC 14 und 15). Die Länge, Einheit und Konsistenz müssen nachher im TwinCAT System Manager genauso eingestellt werden wie hier. An der Stelle, wo im Hardware Konfigurator Eingänge sind, müssen im System Manager nachher Ausgänge eingebunden werden und umgekehrt.

Einstellungen Im TwinCAT System Manager

Zuerst muss die S7 CPU 315-DP2 als GSD Datei in den System Manager eingebunden werden. Diese GSD Datei ist nicht in der TwinCAT Installation vorhanden und muss daher in einem Pfad abgelegt werden.

Nachdem die GSD Datei eingebunden wurde, sieht man nun die CPU 315 mit 1., 2. und 3. Kennung. Diese Kennungen sind vom System vorgegeben und dürfen nicht verändert werden. Hier kann auch sofort die Slaveadresse ( Stations-Nr.:) eingegeben werden, die mit der vorher eingestellten Adresse im Simatic Manager übereinstimmen muss.

Nun können die Ein - und Ausgänge (Module) für die Profibusschnittstelle eingefügt werden. Es ist unbedingt darauf zu achten, dass die Einträge von der Länge, Einheit und Konsistenz genau den Einträgen im Hardware Konfigurator entsprechen. Hier müssen die Ausgänge eingebunden werden.

Der komplette System Manager muss demnach in diesem Beispiel wie folgt aussehen:

Zum Schluss müssen nur noch die Ein - und Ausgänge unter den Modulen mit der entsprechenden Task (PLC Programm ) verknüpft werden.

Damit ist die Parametrierung der S7 CPU 315-DP 2 abgeschlossen.


BC9000: Der ErrCounter zählt hoch

Datum: 12.06.2001 Artikel-ID: 01060912

Frage:

Die Status Variable beim BC9000 im System Manager zählt hoch. Dies bedeutet, dass nicht mehr alle Telegramme beim Ethernet Busklemmen Controller ankommen, bzw. beantwortet werden. Wie kann dies behoben werden?

Antwort:

a.) Wechseln Sie die Transportschicht von TCP/IP auf UDP.
b.) Erhöhen Sie die Taskzeit für die zyklischen Daten.
c.) Erhöhen Sie die "Background Time" des BC9000.
d.) Erhöhen Sie die Baudrate von 10 MBaud auf 100 MBaud.
e.) Versuchen Sie die Busbelastung durch den Einsatz von Switches zu vermindern.


BC9000: Adresse der SPS Busklemmen

Datum: 12.06.2001 Artikel-ID: 01060913

Frage:

Auf welcher Adresse befinden sich die Busklemmen , die Sie der lokalen SPS (BC9000) zugewiesen haben?

Antwort:

Konfigurieren Sie im System Manager Ihre Hardwarekonfiguration. Nachdem Sie alle Busklemmen und SPS Variablen eingetragen haben, klicken Sie im Hardwarebaum mit der rechten Maustaste auf den BC9000 und wählen Sie den Menü Punkt "Export Variablen Info...".

Es wird eine Datei gespeichert, die Sie im PLC Control unter "Projekt - Importieren " einfügen können.

Nun haben Sie unter den Globalen Variablen den Eintrag "TwinCAT Import", in dem Sie alle Variablen finden, die Sie dem BCxxxx zugeordnet haben.


Wartung APC / USV

Datum: 06.12.2001 Artikel-ID: 01120915

Frage:

Wie funktioniert das Wartungsprogramm der APC USV, bzw. wann ist es erforderlich, die Batterien zu wechseln?

Antwort:

Die USV testet die Batterie (Akkumulator) entweder nach dem Einschalten oder alle 14 Tage bei Dauerbetrieb.

Besteht die USV diesen Test nicht, leuchtet an der USV die Batterieersatz LED.

Die typische Lebensdauer des Akkumulators beträgt 3-6 Jahre, je nach Anzahl der Entladezyklen und der Temperatur.


TwinCAT Ethernet Driver - Installation

Beckhoff Knowledge Base: TwinCAT System Manager

TwinCAT Ethernet Treiber - Installation

Datum: 21/02/2003 Artikel-Nr.: 03020916

Frage:

Wie installiert man Netzwerkkarten für Beckhoff Echtzeit-Ethernet?

Antwort:

Der auf Intel 8255x basierende Netzwerkadapter (NIC) sollte nach dem Einbau automatisch von Windows XP / 2000 gefunden werden. Nach der automatischen Erkennung, muß der Microsoft-spezifische Treiber für dieses Gerät durch einen Beckhoff-eigenen ausgetauscht werden. Dazu muß unter: 'Netzwerkverbindungen' (z.B. über die 'Systemsteuerung') der Dialog 'Eigenschaften' der Netzwerkverbindung geöffnet werden. Falls im System mehr als ein Netzwerkadapter installiert ist, ist der Adapter auszuwählen, welcher für Echtzeit-Ethernet vorgesehen ist.
Für weitere Informationen zu den einzelnen Schritten der Installationsprozedur, siehe: TwinCAT System Manager | Anhang C: Echtzeit-Ethernet Installation.

Hinweis:

Bei manchen Systemen ist es vorgekommen, dass zwar der Echtzeit-Ethernet Treiber installiert werden konnte, das der Treiber aber nicht mit dem TcEther Protokoll verknüpft werden konnte da es beim installieren des Protokolls nicht zur Auswahl angeboten wurde (Schritt 11 der TwinCAT System Manager | Anhang C: Echtzeit-Ethernet Installation). In diesem Fall sollte im Explorer unter 'Extras' der Menüeintrag 'Ordneroptionen' aufgerufen und dort dann der Karteireiter 'Ansicht' angewählt werden. Im Eintrag (Ordner-Symbol) 'Versteckte Dateien und Ordner' ist die Option 'Alle Dateien und Ordner anzeigen' zu aktivieren. Danach kann erneut mit Schritt 10 der Echtzeit-Ethernet Installation fortgefahren werden. Bei Schritt 11 ist dann auf 'Datenträger' zu klicken und im erscheinenden Dialog in das Verzeichnis Windows\Inf (Windows XP) bzw. WinNT\Inf (Windows 2000) zu wechseln. Danach sollte das 'Beckhoff Echtzeit-Ethernet Protocol' zur Auswahl stehen.


Hardware

Übersicht der Einträge unter Hardware
Feldbusse
CANopen
DeviceNet
Profibus
Sercos
Busklemmen Controller, BCxxxx
Buskoppler, BKxxxx
Control Panel
Embedded-PC:CX1000
Industrie-PC
IPxxxx oder Feldbus Box
KLxxxx oder Busklemme
NT

zurück zur allgemeinen Übersicht


Hardware: BCxxxx

Datum | Artikel-ID. | Artikelauswahl
11.07.2001 | 01073001 | Retaindaten werden überschrieben
11.07.2001 | 01073002 | Einbaumaße Busklemmen / Buskoppler
11.07.2001 | 01073003 | BCxxx im Flash löschen
11.07.2001 | 01073004 | Anlauf des Controllers
11.07.2001 | 01073005 | Leuchtdioden des BC3100
28.06.2001 | 01062508 | BC3100 ohne Profibus-DP
13.07.2001 | 01073006 | BC3100 programmieren
13.07.2001 | 01073007 | ADR Befehl
06.12.2001 | 01123008 | Fehlercode BC3100

zurück zur Hardware Übersicht


Retaindaten werden überschrieben

Datum: 11.07.2001 Artikel-ID:01073001

Frage:

Die Retaindaten ( Merkerbereich 0..63) auf dem BCxxxx werden beim Programmdownload überschrieben. Wie kann das verhindert werden?

Antwort:

Retaindaten werden beim Programmdownload immer überschrieben. Lediglich Persistente Daten würden einen Download überstehen. Die Länge der Persistenten Daten kann man in der Tabelle 1 Register 18 mit den unteren 14 Bit einstellen.

Bitte beachten !!

Die Länge der Persistenten Daten darf nur kleiner oder gleich der Länge der Retain Daten sein.


Einbaumaße Busklemmen / Buskoppler

Datum: 11.07.2001 Artikel-ID: 01073002

Frage:

Wie lauten die Einbaumaße für die Busklemmen, Buskoppler und Busklemmen Controller?

Antwort:

Das System der Beckhoff - Busklemme zeichnet sich durch geringes Bauvolumen und hohe Modularität aus. Für die Projektierung muss ein Buskoppler und eine Anzahl von Busklemmen vorgesehen werden. Die Baumaße der Buskoppler sind unabhängig vom Feldbussystem. Durch die Verwendung von Lichtleiter-Kabel mit den Steckern Z1000 findet keine Überschreitung der lichten Abmaße des Buskopplers statt.

Maßangaben in mm

Die Gesamtbreite der Anwendung setzt sich aus der Breite des Buskopplers mit der Busendklemme KL9010 und der Breite der verwendeten Busklemmen zusammen. Die Busklemmen sind je nach Funktion 12 mm oder 24 mm (KL5101, KL5121) breit. Die lichte Höhe von 68mm wird durch die Frontverdrahtung in Abhängigkeit von der Drahtstärke um ca. 5 mm bis 10 mm überbaut.


BCxxxx: Flash löschen

Datum: 11.07.2001 Artikel-ID: 01073003

Frage:

Wie kann das Flash des BC3100 gelöscht werden?

Antwort:

Mit Anwahl der Hersteller Konfiguration:
Der Auslieferungszustand des Kopplers wird wieder herstellt (Bootprojekt wird gelöscht), danach muss der Koppler durch einen Koppler Reset neu gestartet werden.

Unter Online -> Koppler -> Hersteller Konfiguration:


Anlauf des Controllers

Datum: 11.07.2001 Artikel-ID: 01073004

Frage:

Wie kann ich den Anlauf des Controllers (1. Zyklus) erkennen?

Antwort:

Da es kein spezielles Flag für den ersten Zyklus gibt, kann der Anlauf nicht erkannt werden. Kann aber leicht selber realisiert werden.


Leuchtdioden des BC3100

Datum: 11.07.2001 Artikel-ID: 01073005

Frage:

Was bedeuten die LEDs auf dem Busklemmen-Controller BC3100?

Antwort:

RUN

Die grüne RUN-LED auf dem Busklemmen-Controller leuchtet, wenn die PLC-Task im RUN ist.

BF

Die rote BF-LED auf dem Busklemmen-Controller leuchtet, wenn der BC3100 nicht am Profibus-DP Datenaustausch teilnimmt.

DIA

Beim Herunterladen des PLC-Programms mit der TwinCAT-PLC-Programmierumgebung wird das Programm zunächst nur im RAM gespeichert. Durch den Befehl 'Online -> Erzeugen eines Bootprojektes' wird das Programm vom RAM in das Flash gespeichert. Während dieses Speichervorganges geht die rote DIA-LED auf dem Busklemmen-Controller an.

PLC

Die PLC LED leuchtet wenn das PLC Projekt im Controller läuft.


BC3100 programmieren

Datum: 13.07.2001 Artikel-ID: 01073006

Frage:

Ist die Programmierung eines BC3xxx mit Hilfe der TwinCAT Software über die Profibus-Schnittstelle möglich?

Antwort:

Ja die Programmierung ist über ADS von einem TwinCAT System aus möglich.


ADR Befehl

Datum: 13.07.2001 Artikel-ID: 01073007

Frage:

Was bewirkt der ADR Befehl?

Antwort:

Mit ADR wird die Adresse eines physikalischen Speichers einer Variablen ermittelt


Fehlercode BC3100

Datum: 06.12.2001 Artikel-ID: 01123008

Frage:

Was bedeutet es, wenn die Leuchte "I/O ERR" des BC3100 sieben Mal blinkt?
Mit einem K-Bus Reset verschwindet das Blinken wieder, aber der Busklemmen laufen nicht einwandfrei.

Antwort:

Der PLC Zyklus des BC3100 ist länger als die "K-Bus Watchdog time".

Mit der Funktion "TrigTBusCycle" (PlcSystemBC.lb6) kann aus der SPS-Task ein zusätzlicher Klemmenbuszyklus angestoßen werden.
So kann ein Fehler durch den Watchdog vermieden werden.


Hardware: BKxxxx

Datum | Artikel-ID. | Artikelauswahl
12.12.2001 | 01123401 | Gerätediagnose, Statuswort
12.12.2001 | 01123402 | Gerätediagnose, Controlwort
12.12.2001 | 01123403 | Einstellbare Parameter (BK20xx, BC20xx)
12.12.2001 | 01123404 | Einstellbare Parameter (BK4000)

zurück zur Hardware Übersicht


Gerätediagnose, Statuswort

Datum: 12.12.2001 Artikel-ID:01123401

Frage:

Wie ist das Diagnose Statuswort aufgebaut?

Antwort:

Status- wort | Bit 15 | Bit 14 | Bit 13 | Bit 12 | Bit 11 | Bit 10 | Bit 9 | Bit 8 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0
 | F | Erw Diag |  |  | Diag |  | Kanal |  | Klemmennummer

Klemmennummer gibt die Position der Klemmen innnerhalb des Klemmenblocks an.
Kanal gibt den entsprechenden Signalkanal an.
Diag(nose) gibt einen Diagnose Code an.
Erw(eiterte) Diag(nose) gibt einen erweiterten Diagnose Code an.
F(ai)l gibt an ob ein Fehler aufgetreten ( F = 1 ) oder behoben ist ( F = 0 ).

Jede Änderung des Klemmenstatus (bei digitalen Klemmen wie z.B. KL2012), erzeugt eine Diagnose (also auch der Wechsel Fail 1 -> 0).

Die Bedeutung des Diagnosecodes ist vom jeweiligen Klemmentyp abhängig (momentan ist dieser nur für digitale Klemmen implementiert).


Gerätediagnose, Controlwort

Datum: 12.12.2001 Artikel-ID:01123402

Frage:

Wie ist das Diagnose Controlwort aufgebaut?

Antwort:

Controlwort | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
 | -- |  |  |  |  |  |  |  | C | -- | -- | -- | -- | -- | -- | Q

Q(uit) Quittiert die aktuelle Diagnosemeldung.
C(lear) Löscht den Inhalt des Diagnose-FIFOs.

Erkannte Änderungen im Klemmenstatus (bei digitalen Klemmen wie z.B. KL2012) werden in einem n (32) Worte großen FIFO abgelegt und dem Feldbus über das Diagnose-Statuswort übergeben (aktuell unterstützt bei Bx20xx, BK40xx, BK5220, Bx7300, Bx9000, CP903x und CPx8xx). Jede Diagnose muss vom Feldbus über das Diagnose-Controlwort quittiert werden bevor eine neue Diagnose ins Statuswort eingetragen werden kann. Sowohl Status- als auch Controlwort liegen innerhalb der Prozessabbilder an fest definierten Offsets ( Buskoppler abhängig).

Solange eine im Diagnose-FIFO eintragene Fehlermeldung nicht abgesetzt ist, wird sie kein zweites Mal in den FIFO eingetragen.

Wird eine Diagnose über das Diagnose-Controlwort quittiert, wird die anstehende Diagnose gelöscht. Sobald die Quittung zurückgenommen ist, wird eine eventuell anstehende neue Diagnose in das Diagnose-Statuswort eingeblendet.


Einstellbare Parameter (BK20xx, BC20xx)

Datum: 12.12.2001 Artikel-ID:01123403

Frage:

Was muss am BK2000, BK2020 oder BC2000 intern konfiguriert sein, um die erweiterten Diagnosefunktionen zu aktivieren?

Antwort:

Um Statusinformationen der digitalen Klemmen mit Rückmeldungseigenschaften angezeigt zu bekommen, müssen im Koppler folgende Einstellungen vorgenommen werden:

 |  | Beschreibung | Defaultwerte
Klemmennummer | 0 |  |
Tabellennummer | 0 | Rd/Wr mit Software Schreibschutz |
Registernummer | 2 | Klemmbus |
 | 2.0 | Autoreset | 0
 | 2.1 | Gerätediagnose | 1
 | 2.2 | Diagnosedaten ins Prozessabbild mappen | 1


Einstellbare Parameter (BK4000)

Datum: 12.12.2001 Artikel-ID:01123404

Frage:

Was muss am BK4000 intern konfiguriert sein, um die erweiterten Diagnosefunktionen zu aktivieren?

Antwort:

Um die Statusinformationen der digitalen Klemmen mit Rückmeldungseigenschaften angezeigt zu bekommen, müssen im Koppler folgende Einstellungen vorgenommen werden:

 |  | Beschreibung | Defaultwerte
Klemmennummer | 0 |  |
Tabellennummer | 100 | Rd/Wr mit Software Schreibschutz |
Registernummer | 1 | Feldbusspezifische Diagnosemeldung |
 | 1.0 | Setzen des Ports "StatErr" bei auftreten einer Diagnose | 0


Hardware: CANopen

Datum | Artikel-ID. | Artikelauswahl
03.11.2000 | 00112101 | Registerkommunikation
03.11.2000 | 00110904 | CAN Box Reset
10.11.2000 | 00112102 | Firmware Update bei Hilscherkarten
13.12.2000 | 00122103 | Kommando an Schicht 2 senden

zurück zur Hardware Übersicht


Registerkommunikation

Datum: 03.11.2000 Artikel-ID:00112101

Frage:

Wie erfolgt die Registerkommunikation unter CANOpen?

Antwort:

Ein Beispiel für den SDO Zugriff auf eine Klemme. TwinCAT ab Version 2.7 Beispiel für BK5120 KL2012 KL6001 KL9010

Gelesen wird hier das Register 8 der KL6001- als Ergebnis muss 6001 erscheinen.


Firmware Update bei Hilscherkarten

Datum: 10.11.2000 Artikel-ID: 00112102

Frage:

Wie führe ich ein Update der Firmware durch?

Antwort:

Der TwinCAT System Manager überprüft die Firmware Version der Feldbus Masterkarte. Eine aktuelle Version wird in der Anzeige schwarz angezeigt. Ist die Anzeige in roter Schrift, wird ein Update der Firmware empfohlen.

Aktuelle Firmware

Nicht aktuelle Firmware (Es wird ein Update empfohlen)

Durch Betätigen des Button Firmware Update... kommen Sie zum Dialog "Öffnen". Hier wird die kartenspezifische Datei ( z.B. Com.h36 für die CIF30-CAN ) ausgewählt.

Diese finden Sie auf den Beckhoff Produkt CDs sowie auf jeder TwinCAT CD unter Unsupported Utilities \ Hilscher Firmware \ ... .

Ist der Firmware Update erfolgreich sehen Sie folgende Message Box


Kommando an Schicht 2 senden

Datum: 13.12.2000 Artikel-ID:00122103

Frage:

Wie kann ein 10Byte langes Kommando an die Schicht 2 eines CAN-Masters gesendet werden?

Antwort:

Mit dem Funktionsbaustein IOF_CAN_Layer2Command

Siehe Dokumentation: TwinCAT PLC Library: IO Funktionen

Hinweis:

Um diese Seite lesen zu können, muss das vollständige Beckhoff Information System installiert sein.


Hardware Control Panel

Datum | Artikel-ID. | Artikelauswahl
20.02.2002 | 02022201 | CP-Link Karte und PC

zurück zur Hardware Übersicht


Hardware Industrie-PC

Beckhoff Knowledge Base: Hardware Embedded-PC: CX1000

Hardware Embedded-PC: CX1000

Datum | Artikel-ID. | Artikelauswahl
18.11.2002 | 02113502 | Parallele Schnittstelle (Druckerschnittstelle)
18.11.2002 | 02113503 | Ethernet/Internet Protokolle

zurück zur Hardware Übersicht


Stichwort

Beckhoff Knowledge Base: Hardware Embedded-PC: CX1000

Parallele Schnittstelle (Druckerschnittstelle)

Datum: 18.11.2002 Artikel-ID: 02113502

Frage:

Besitzt der CX1000 eine parallele Schnittstelle (Druckerschnittstelle)?

Antwort:

Nein eine parallele Druckerschnittstelle gibt es beim CX1000 nicht. Drucker müssen entweder seriell oder über die USB Schnittstelle angeschlossen werden.


Stichwort

Beckhoff Knowledge Base: Hardware Embedded-PC: CX1000

Ethernet/Internet Protokolle

Datum: 18.11.2002 Artikel-ID: 02113503

Frage:

Welche Protokolle werden vom CX1000 unterstützt?

Antwort:

Die Protokolle HTTP und FTP werden von allen CX1000 Modulen unterstützt, das SMTP Protokoll nur von den CX1000 Modulen mit großem Speicherausbau.

Das POP3 Protokoll wird von keinem CX1000 Modul unterstützt.

Übersicht der unterstützten Protokolle

Unterstützt? | Protokoll
CX Modul | HTTP | FTP | SMTP
CX1000-0000 | ja | ja | nein
CX1000-0010 | ja | ja | nein
CX1000-0011 | ja | ja | nein
CX1000-0012 | ja | ja | nein
CX1000-0100 | ja | ja | nein
CX1000-0110 | ja | ja | nein
CX1000-0111 | ja | ja | nein
CX1000-0112 | ja | ja | nein
CX1001-0000 | ja | ja | ja
CX1001-0010 | ja | ja | ja
CX1001-0011 | ja | ja | ja
CX1001-0012 | ja | ja | ja
CX1001-0020 | ja | ja | ja
CX1001-0021 | ja | ja | ja
CX1001-0022 | ja | ja | ja
CX1001-0100 | ja | ja | ja
CX1001-0110 | ja | ja | ja
CX1001-0111 | ja | ja | ja
CX1001-0112 | ja | ja | ja
CX1001-0120 | ja | ja | ja
CX1001-0121 | ja | ja | ja
CX1001-0122 | ja | ja | ja


Hardware DeviceNet

Datum | Artikel-ID. | Artikelauswahl
25.07.2001 | 01073301 | DeviceNet konfigurieren
25.07.2001 | 01073302 | Finding produced (Rx) and consumed (Tx) string lengths
25.07.2001 | 01073303 | String format of Rx String and Tx String
25.07.2001 | 01073304 | Working example to configure BK5200

zurück zur Hardware Übersicht


Configuring DeviceNet:

Date: 25.07.2001 Article ID:01073301

Question:

What is the meaning of the electronic data sheet (EDS)?

Answer:

When configuring a DeviceNet node, an electronic data sheet (EDS) is usually provided by the manufacturer of that device to assist in this task. An EDS file is a text file that describes properties of a particular DeviceNet node. It includes the number of bytes that are transmitted to the node (output information) and the number of bytes that are received from the node (input and status information). Since the number of transmit and receive bytes depend on the I/O terminals attached to the BK 5200 coupler, the default transmit and receive sizes are set to 0 in the BK 5200 EDS. For each BK 5200 in the network, you must adjust the transmit and receive sizes to match the data sizes produced and consumed by each node.

Note:

A copy of the EDS file can be found on the web.


Finding produced (Rx) and consumed (Tx) string lengths

Date: 25.07.2001 Article ID:01073302

Question:

How can I calculate the produced and consumed string lengths?

Answer:

The essential parameters that need to be configured correctly before a Beckhoff node may be allocated onto a network are the Tx and Rx string lengths. To calculate the Rx length it is necessary to add the number of input bits each terminal produces for the DeviceNet network divide it by 8 and if a remainder exists add one to the number. The Rx number that is calculated is the number of input bytes the master/controller will receive from the Beckhoff node. But, this is not the total number of bytes the master/controller will receive. It is necessary to add 1 byte for status information that is produced by the coupler. The total number of Rx bytes received by the master/controller is the number of input bytes plus 1 status byte. This is the number used for the Rx value.

The general formula is as follows:

IN1 = number of input bits terminal 1 produces for the DeviceNet network,

IN2 = number of input bits terminal 2 produces for the DeviceNet network, and

INn = number of input bits terminal with n variable produces for DeviceNet network.

Rx (bytes) = (((IN1 + IN2 +..+ INn ) / 8) (+1 if a remainder exists)) + 1 status byte

The Tx value is the number of bytes the master/controller transmits to the Beckhoff coupler. Calculating the Tx value is done by the same method as Rx value with one exception. The Tx value does not contain a status byte.

The following equation may be used in calculating the Tx value:

OUT1 = number of output bits terminal 1 consumes from the DeviceNet network,

OUT2 = number of output bits terminal 2 consumes from the DeviceNet network,

OUTn = number of output bits terminal with n variable consumes from the DeviceNet network.

Tx (bytes) = (((OUT1 + OUT2 +..+ OUTn) /8) (+1 if a remainder exists))

The Tx and Rx values calculated in the above equations will be declared somewhere in the configuration application being used. (i.e. DeviceNet Manager)


String format of Rx String and Tx String

Date: 25.07.2001 Article ID:01073303

Question:

How can I calculate the string format of Rx String and Tx Sring?

Answer:

It is important to know the format of the Rx and Tx strings in order to map the analog and discrete data into desired I/O locations.
When the master/controller receives input information from the Beckhoff DeviceNet coupler, it receives the analog input values starting with the terminal nearest to the communication coupler proceeding to the end terminal. After the master/controller receives the analog data, the discrete data is received. The last byte that is received is the status byte produced by Beckhoff's coupler.
The master/controller must transmit in the same order. The analog data is transmitted starting with the analog output terminal nearest to the BK 5200 coupler.
An easy phrase to remember for the format of the data string is: "Data is produced/consumed left to right with the analog terminals served first." (BK5200 on left side)


Working example to configure BK5200

Date: 25.07.2001 Article ID:01073304

Question:

How can a BK5200 be configured?

Answer:

The follow is an example of a working demo. The Rx an Tx values are calculated and both string formats are shown.

The following is a description of this terminal connection.
(3) KL 1002 (2 channel 24Vdc discrete input terminals)
(1) KL 2002 (2 channel 24Vdc discrete output terminal)
(2) KL 2114 (4 channel 24Vdc discrete output terminals)
(1) KL 1501 (High speed Up/Down counter)
(1) KL 4002 (2 channel 0-10V analog output terminal)
(1) KL 3062 (2 channel 0-10V analog input terminal)
(1) KL 9010 (end terminal)

The following is the calculation of the Rx value:

Rx (bytes) = (((IN1 + IN2 +..+ INn ) / 8) (+1 if a remainder exists)) + 1 status byte

Variable | Terminal | Type | # of produced bits | Analog or Discrete
IN1 | terminal 1 | KL1002 | 2 bits | discrete
IN2 | terminal 2 | KL1002 | 2 bits | dicsrete
IN3 | terminal 3 | KL1002 | 2 bits | discrete
IN4 | terminal 7 | KL1501 | 40 bits | analog
IN5 | terminal 9 | KL3062 | 32 bits | analog

Rx (bytes) = ((((IN1+IN2+IN3+IN4+IN5)/8) +(1 if a remainder exists)) +1status)

((((2+2+2+40+32)/8+(remainder exists so +1)) + 1status)

Rx = 11 bytes

The following is the calculation of the Tx value:

Tx (bytes) =(((OUT1 + OUT2 +...+ OUTn) /8) (+1 if a remainder exists))

Variable | Terminal | Type | # of consumed bits | Analog or Discrete
OUT1 | terminal 4 | KL2002 | 2 bits | discrete
OUT2 | terminal 5 | KL2114 | 4 bits | dicsrete
OUT3 | terminal 6 | KL2114 | 4 bits | discrete
OUT4 | terminal 7 | KL1501 | 40 bits | analog
OUT5 | terminal 8 | KL4002 | 32 bits | analog

Tx (bytes) = ((( OUT1+ OUT2 + OUT3 + OUT4 + OUT5) / 8) + ( 1 if a remainder exists))

(((2 + 4+ 4+ 40 + 31) /8 ) + ( remainder exists so + 1)

Tx = 11 byes

The following is a tabular display of the Rx string:

Byte # | Data information
 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0
1 | KL1501
2 | KL1501
3 | KL1501
4 | KL1501
5 | KL150
6 | KL3062 Channel 1 Low byte
7 | KL3062 Channel 1 High Byte
8 | KL3062 Channel 2 Low Byte
9 | KL3062 Channel 2 High Byte
10 | not used | not used | t3c2 | t3c1 | t2c2 | t2c1 | t1c2 | t1c1
11 | not implemented | not implemented | not implemented | not implemented | not implemented | not implemented | not implemented | BK5200 status

t3c1 = terminal 3, channel 1 etc.

The following is a tabular display of the Tx string:

Byte # | Data information
 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0
1 | KL1501
2 | KL1501
3 | KL1501
4 | KL1501
5 | KL150
6 | KL4002 Channel 1 Low byte
7 | KL4002 Channel 1 High Byte
8 | KL4002 Channel 2 Low Byte
9 | KL4002 Channel 2 High Byte
10 | t6c2 | t6c1 | t5c4 | t5c3 | t5c2 | t5c1 | t4c2 | t4c1
11 | not used | not used | not used | not used | not used | not used | t6c4 | t6c3


Hardware KLxxxx Overview

Beckhoff Knowledge Base: Hardware KLxxxx

Hardware KLxxxx

Datum | Artikel-ID. | Artikelauswahl
19.05.2003 | 03053701 | KL6201: Schnellstart

zurück zur Hardware Übersicht


KL6201: Schnellstart

Datum: 15.05.2003 Artikel-ID: 03053701

Frage:

Wie kann man schnellstens ASi Slave-Module an einer KL6201 in Betrieb nehmen?

Antwort:

Um schnell ein ASI-Netz am KL6201 ASi -Master in Betrieb zu nehmen, sind lediglich die folgenden Schritte durchzuführen:

  1. ASi Knoten adressieren (z.B. mit KS2000 v4 oder manuell über die Set-Eingänge der Klemme) und am ASi-Kabel anschließen
  2. Prozessabbild-Interface auswählen und einstellen. Default: 12 Byte Prozessabbild Interface für Slave Adressen 1..11.
  3. Zur Freigabe der ASi-Kommunikation ist das Bit 3 im CMD-Nibble auf 1 setzen.

    Beispiel bei 12 Byte Interface (Ausgänge):

    Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Byte 9 | Byte 10 | Byte 11
    CTRL0 CTRL1 WPara0 WPara1 WPara2 WPara3 CMD
    + Output
    Slave 1     		Output
    Slave
    2+3     		Output
    Slave
    4+5     		Output
    Slave
    6+7     		Output
    Slave
    8+9     		Output
    Slave
    10+11
    0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0xp 8 | 0xpp | 0xpp | 0xpp | 0xpp | 0xpp

    p: Prozessdaten (Ausgänge) für die jeweiligen ASI Slaves

  4. Die KL6201 antwortet dann nach Ausführung des ASI Zyklus mit den Eingangsdaten (je nach überlagertem Feldbusystem, kann dies um ein oder mehrere Zyklen verzögert geschehen).

Hinweis: Das Kurzschließen der beiden Set-Eingänge ist zum Betrieb nicht notwendig. In der Inbetriebnahme-Phase ist dies auch eher hinderlich, da der ASI-Master dann nur diejenigen ASi-Slaves in den Datenaustausch aufnimmt, die er beim Kurzschließen der Set-Eingänge gefunden hat.

Für weitere Informationen siehe KL6201 Dokumentation, zu finden unter: http://www.beckhoff.com/german/download/busterm.htm


Hardware NT

Datum | Artikel-ID. | Artikelauswahl
10.11.2000 | 00112801 | Shutdown von Windows NT
13.12.2000 | 00122802 | Restart von Windows NT
13.12.2000 | 00122803 | Ermittlung der NT-Systemzeit/Datum
13.12.2000 | 00122804 | Windows Anwendung aus SPS starten
12.12.2000 | 00121105 | Systemleistung / Echtzeiteinstellungen
27.06.2001 | 01061106 | Nach Shutdown aus der SPS wird das System heruntergefahren und neu gebootet
24.07.2001 | "TwinCAT UPS" | Konfiguration der einzelnen USV Typen bei verschiedenen Betriebssystemen

zurück zur Hardware Übersicht


Shutdown von Windows NT

Datum: 10.11.2000 Artikel-ID:00112801

Frage:

Wie kann ein Shutdown des Windows NT Betriebssystems durchgeführt werden?

Antwort:

Mit dem Funktionsbaustein NT_Shutdown.

Siehe Dokumentation: TwinCAT PLC Utilities Library

Hinweis:

Um diese Seite lesen zu können, müssen Sie das vollständige Beckhoff Information System installiert haben.


Restart von Windows NT

Datum: 13.12.2000 Artikel-ID:00122802

Frage:

Wie kann ein Restart des Windows NT Betriebssystems durchgeführt werden?

Antwort:

Mit dem Funktionsbaustein NT_Reboot.

Siehe Dokumentation: TwinCAT PLC Utilities Library

Hinweis:

Um diese Seite lesen zu können, müssen Sie das vollständige Beckhoff Information System installiert haben.


Ermittlung der NT-Systemzeit/Datum

Datum: 13.12.2000 Artikel-ID:00122803

Frage:

Wie kann die aktuelle NT-Systemzeit und das Datum ermittelt werden?

Antwort:

Mit dem Funktionsbaustein NT_GetTime.

Siehe Dokumentation: TwinCAT PLC Utilities Library

Hinweis:

Um diese Seite lesen zu können, müssen Sie das vollständige Beckhoff Information System installiert haben.


Windows Anwendung aus SPS starten

Datum: 13.12.2000 Artikel-ID:00122804

Frage:

Wie kann eine Windows Anwendung aus der SPS heraus gestartet werden?

Antwort:

Mit dem Funktionsbaustein NT_StartProcess.

Siehe Dokumentation: TwinCAT PLC Utilities Library

Hinweis:

Um diese Seite lesen zu können, müssen Sie das vollständige Beckhoff Information System installiert haben.


Hardware Profibus

Datum | Artikel-ID. | Artikelauswahl
03.11.2000 | 00112501 | Profibus Diagnose
03.11.2000 | 00112502 | FC310x Diagnosebeispiel
03.11.2000 | 00112503 | Profibus BK3xxx
03.11.2000 | 00122504 | Profibus DP und MPI über eine ungeschirmte Leitung
05.12.2000 | 00122505 | BK31x0 im reinen Profibus DP
11.12.2000 | 00122506 | Profibusdiagnose auf dem BC3100 ( Profibus Status beim Slave)
09.11.2000 | 00110908 | GSD und EDS Boxen anfügen
13.11.2000 | 00110301 | KL6xxx Beispielprogramm
25.06.2001 | 01062507 | Einstellung der Teilnehmeradresse
25.06.2001 | 01062508 | BC3100 ohne Profibus-DP
13.07.2001 | 01073006 | BC3100 programmieren
23.07.2001 | 01072509 | Diagnosedaten BK3xxxx
28.07.2001 | 01072510 | S7-315 DP2 Profibus interface and special function terminals
23.10.2002 | 02102511 | Multi Configuration-Mode mit Step 7

zurück zur Hardware Übersicht


Profibus Diagnose

Datum: 03.11.2000 Artikel-ID:00112501

Frage:

Wie führe ich eine Diagnose am Profibus durch?

Antwort:

Mit dem Funktionsbaustein ADSREAD

Dazu sind folgende Einstellungen der I/O Geräte zu beachten:

BK3100 an einer CP5412

NetID ''
Port 300
Index Group 5001 ( 5000 + ID der Karte CP5412, hier 1)
Index Offset 16# 0003 0100 (0003 weil Gerät hier die Stationsadresse 2 hat+ 0100 als Fixwert.)

ID der Karte

Stationsadresse des Kopplers

BK3100 an einer FC3100x

Net ID 1 (NetID der Karte FC310x hier 1)
Port 200
Index Group 0xF100
Index Offset 2 (Stationsadresse des BK3100 hier 2)

Net ID der Karte

Weitere Informationen zu dem Funktionsbaustein finden Sie in der Dokumentation TwinCAT PLC Library: System.


FC310x Diagnosebeispiel

Datum: 03.11.2000 Artikel-ID:00112502

Frage:

Wie werden bei der FC310x unter TwinCAT die Diagnosedaten gelesen und interpretiert?

Antwort:

Siehe Beispielprogramm.

Lesen der Diagnosedaten (Funktionsblock FCxxxxBoxDiag) und Interpretieren eines Slaves (Funktionsblock DecodeDpExtDiagData) bei einer FC310x.


Profibus BK3xxx

Datum: 03.11.2000 Artikel-ID:00112503

Frage:

Welcher Fehler liegt vor, wenn die Ausgänge der Koppler flackern?

Antwort:

Wenn die Ausgänge der Koppler flackern, kann die Fehlerursache das Zuschlagen des Watchdogs sein.

Der Koppler und die Klemmen besitzen einen Watchdog (100 ms). Erhält der Koppler länger als 100ms kein gültiges Telegramm ( mögliche Ursachen: Zykluszeit des Masters zu lang oder Busstörungen ) werden aufgrund des Watchdogs die Ausgänge zurückgenommen.

Sobald erneut ein Telegramm eintrifft ist der Koppler erneut aktiv (flackern). Ein eventuell auftretendes Blinken der LED BF kann am Mode freilaufend oder synchron liegen.


Profibus DP und MPI über eine ungeschirmte Leitung

Datum: 06.12.2000 Artikel-ID: 00122504

Frage:

Ist PROFIBUS DP und MPI auch über eine ungeschirmte Leitung möglich?

Antwort:

Sie können ungeschirmte Leitungen bei Baudraten bis 19,2 kBaud einsetzen (z.B. bei Verwendung eines FSK-Modems).


BK31x0 im reinen Profibus DP

Datum: 05.12.2000 Artikel-ID: 00122505

Frage:

Wie kann ich einen Buskoppler BK3100 oder Bk3110 im reinen Profibus DP betreiben?

Antwort:

Dazu muss in der GSD Datei folgende Änderung vorgenommen werden:

FMS_supp auf 0 setzen.

Max_Input_Len = 128

Max_Output_Len = 128

Max_Data_Len = 256

Zudem muss in dem Koppler in der Tabelle 100 das Register 0 auf 1 gesetzt werden.

Die GSD Datei finden Sie zum Download auf unseren Internet Seiten.


Profibusdiagnose auf dem BC3100 (Profibus Status beim Slave)

Datum: 06.12.2000 Artikel-ID: 00122506

Frage:

Ist eine Profibusdiagnose auf dem BC 3100 möglich?

Antwort:

Ja, über den Merkerbereich:

MB508:
    Bit 0 	Offline/Passive-Idle
              0 = SPC3 is offline
              1 = SPC3 is passive-Idle

   Bit1 reseved
               Bit2 Diag_Flag
               0 = DP-Master read Diag. buffer
               1 = DP-Master read not Diag. buffer

       Bit3 RAM_Access_Violation
               0 = No Adress Err.
               1 = For adresses > 1536 Byte will be 1024 Byte

       Bit4,5 DP State
               00 = Wait_Prm
               01 = Wait_Cfg
               10 = DATA_EX
               11 = not possible

       Bit6,7 WD State
               00 = Baud_Search
               01 = Baud_Control
               10 = DP_Control
               11 = not possible

MB509:
    Bit0,1 	Baudrate3..0

    Bit2,3 		0000 = 12 MBaud ( SPC3 found Baudrate)
            0001 = 6 MBaud
            0010 = 3 MBaud
            0011 = 1,5 MBaud
            0100 = 500 KBaud
            0101 = 187,5 KBaud
            0110 = 93,75 KBaud
            0111 = 45,45 KBaud
            1000 = 19,2 KBaud
            1001 = 9,6 KBaud

    Bit 4 		SPC3_Release3..0:
    5,6 		Release_Nr.des SPC3
    7 		0000 = Release 0
            rest = not possible

MB510:

Klemmenbus-State:

Bit0 			0 = no Klemmbus Err.
            1 = Klemmbus Err.

Bit1 			0 = no boot Err.
            1 = boot Err.


Einstellung der Teilnehmeradresse

Datum: 25.06.2001 Artikel-ID: 01062507

Frage:

Wie kann an der Reglerbaugruppe des Simodrive 611UE die Teilnehmeradresse des Profibus eingestellt werden?

Antwort:

Die Einstellung erfolgt in 3 Schritten:

1.) Adresse des Profibus einstellen: Die aktuelle Profibus Teilnehmeradresse (P0918) wird angezeigt, wenn die Taste 'P' länger als 3 Sekunden betätigt wird. Diese Einstellung kann mit der Taste '+' bzw. '-' geändert werden. Mit erneutem Betätigen der Taste 'P' wird der Eingabemodus verlassen.

2.) Adresse im FEPROM speichern: Durch Betätigen der Taste '+' oder '-' wird P0652 (Übernahme ins FEPROM) angezeigt. Mit der Taste 'P' kann der Parameter geändert werden. Nehmen Sie folgende Einstellung (Taste '+') vor: P0652=1. Warten Sie bis P0652=0 ist.

3.) Power On Reset

Damit die eingestellte Profibusadresse nach dem Hochlaufen übernommen wird, muss der Taster 'POWER ON RESET' auf der Frontseite der Baugruppe betätigt werden.

Hinweis:

Die Einstellung kann nur erfolgen, wenn keine Störung bzw. Warnung angezeigt wird.


BC3100 ohne Profibus-DP

Datum: 28.06.2001 Artikel-ID: 01062508

Frage:

Ist der BC3100 in der Lage auch als autarkes System ohne Profibus-DP-Anschluss zu fungieren (z.B. ist normales Weiterarbeiten bei abgeschaltetem Bus möglich), bzw. wie wirkt sich dies auf die Leistungsfähigkeit der integrierten SPS aus ?

Antwort:

Der BC3100 kann als autarkes Gerät betrieben werden. Ein Abschalten des Bussystems ist rückwirkungslos möglich.


Diagnosedaten BK3xxx

Datum: 23.07.2001 Artikel-ID: 01072509

Frage:

Der Profibus DP Master ist eine S7-315DP, daran angeschlossen mehrere BK3100 mit digitalen und analogen E/As.

Wie können mit dem Standard Funktionsbaustein von Siemens (FC13) die Diagnosedaten aufgeschlüsselt werden?

Antwort:

Die Bedeutung der Diagnosedaten ist in der Dokumentation "Profibus Buskoppler BK3xxx", im Anhang (unter Diagnose) aufgelistet.

Die Dokumentation finden Sie zum Download auf unseren Internet Seiten.


S7-315 DP2 Profibus interface and special function terminals

Date: 07/28/2001 Article ID: 01072510

Question:

How can the following problem be solved?

The Siemens S7-315 DP2 Profibus interface cannot exchange data with modules maintaining data connections greater than 4 bytes in length in standard configured mode. This creates a problem with some of Beckhoff’s special function modules that exchange standard connection sizes greater than 4 bytes. The solution to this problem is to use special system function controls that allow extended data lengths.

Answer:

Step 1:

In order to implement the necessary controls, the profile of the node needs to be in standard exchange.

Figure 1

Step2:
SFC 14 and SFC 15 must be implement in your CPU code. SFC 14 will control the read process and SFC 15 will control the write process of the special function terminal. In the example below a KL1501 is setup to exchange its extended data length of 5 input bytes (SFC 14) and 5 output bytes (SFC 15).

Figure 2

The following are the descriptions of SFC14 and SFC15 arguments: SFC14: INO = “KL1501_T3_IN_ADD” This location maintains the beginning input address of the module. This is set during the Profibus commissioning phase. (32 hex = 50 =>start location IB50) OUT1 = This address is where the KL1501 data will be reported after this function is called. (MB100 for 5 bytes) RET_VAL = “KL1501_T3_IN_DIA” Memory location were the function diagnostics are stored. SFC15: INO = “KL1501_T3_OUT_ADD” This location maintains the beginning output address of the module. This is set during the Profibus commissioning phase. (32 hex = 50 =>start location QB50) OUT1 = This address is where the KL1501 data will be reported after this function is called. (MB104 for 5 bytes) RET_VAL = “KL1501_T3_OUT_DIA” Memory location were the function diagnostics are stored.

Figure 3 is an example of a KL1501 terminal with the above SFCs utilized.

Figure 3


Hardware Sercos

Datum | Artikel-ID. | Artikelauswahl
03.11.2000 | 00110905 | Sercos und die Bedeutung der Phasen
13.12.2000 | 00122901 | Kommunikationsphase auf dem Sercos Ring
13.12.2000 | 00122902 | Einstellung der Systemparameter
13.12.2000 | 00122903 | Löschen von Fehlern im Sercos Master
13.12.2000 | 00122904 | Phasenhochlauf im Sercos Ring

zurück zur Hardware Übersicht


Kommunikationsphase auf dem Sercos Ring

Datum: 13.12.2000 Artikel-ID:00122903

Frage:

Wie kann die aktuelle Kommunikationsphase auf dem Sercos Ring ermittelt werden?

Antwort:

Mit dem Funktionsbaustein IOF_SER_GetPhase

Siehe Dokumentation: TwinCAT PLC Library: IO Funktionen

Hinweis:

Um diese Seite lesen zu können, müssen Sie das vollständige Beckhoff Information System installiert haben.


Einstellung der Systemparameter

Datum: 13.12.2000 Artikel-ID:00122902

Frage:

Wie werden Systemparameter im EEPROM von der Steuerung passend zur Applikation eingestellt?

Antwort:

Mit dem Funktionsbaustein IOF_SER_SaveFlash

Siehe Dokumentation: TwinCAT PLC Library: IO Funktionen

Hinweis:

Um diese Seite lesen zu können, müssen Sie das vollständige Beckhoff Information System installiert haben.


Löschen von Fehlern im Sercos Master

Datum: 13.12.2000 Artikel-ID:00122903

Frage:

Wie können Antriebs-, Diagnose-, und Systemfehler eines Sercos Masters (Sercans SCS-P ISA; Sercans SCS-P PCI) gelöscht werden?

Antwort:

Mit dem Funktionsbaustein IOF_SER_Reset Err

Siehe Dokumentation: TwinCAT PLC Library: IO Funktionen

Hinweis:

Um diese Seite lesen zu können, müssen Sie das vollständige Beckhoff Information System installiert haben.

Hinweis:

Diese Funktion gibt es nicht bei den Beckhoff SERCOS Master Karten FC7501 und FC7502 (PCI), da diese anders organisiert sind.


Phasenhochlauf im Sercos Ring

Datum: 13.12.2000 Artikel-ID:00122903

Frage:

Wie kann der Phasenhochlauf im Sercos Ring durchgeführt werden?

Antwort:

Mit dem Funktionsbaustein IOF_SER_SetPhase

Siehe Dokumentation: TwinCAT PLC Library: IO Funktionen

Hinweis:

Um diese Seite lesen zu können, müssen Sie das vollständige Beckhoff Information System installiert haben.


CP-Link Karte und PC

Datum: 20.02.2002 Artikel-ID:02022201

Frage:

Ist es möglich, an einem Rechner Cxxxx, d.h. ein PC mit Display, eine CP-Link Karte mit Control Panel zu betreiben?

Antwort:

Nein. Der Parallelbetrieb eines Rechners mit Display und CP-Link ist derzeit nicht möglich.


Hardware DeviceNet

Beckhoff Knowledge Base: Hardware IPxxxx

Hardware IPxxxx

Datum | Artikel-ID. | Artikelauswahl

zurück zur Hardware Übersicht


Hardware Industrie-PC

Datum | Artikel-ID. | Artikelauswahl
06.07.2001 | 01072701 | In Vorbereitung

zurück zur Hardware Übersicht


Stichwort

Beckhoff Knowledge Base: Hardware Profibus

Multi-Configuration-Mode mit Step 7 (nur mit Experten-GSD-Datei)

Datum: 23.10.2002 Artikel ID: 02102511

Frage:

Welche Anwendungsfälle gibt es für den Multi-Configuration-Mode?

Antwort:

Reserve-Klemmen

Da in der DP-Konfiguration immer erst alle analogen Klemmen vor den digitalen Klemmen konfiguriert werden, hat ein nachträgliches Einfügen von analogen Klemmen zur Folge, dass sich die Adress-Offsets der digitalen Klemmen verschieben. Weiterhin hat das Einfügen einer digitalen Klemme innerhalb der Klemmenaufbaus zur Folge (das kann z.B. sinnvoll sein, wenn Digitalklemmen mit unterschiedlichen Eingangsspannungen verwendet werden), dass sich die Offsets der darauf folgenden digitalen Klemmen verschieben. Beim Anfügen einer digitalen Klemme vor der Endklemme wird der Offset der bereits vorhandenen Klemmen jedoch nicht verschoben. Mit dem Multi-Configuration-Mode können nunmehr zusätzliche Klemmen als Reserve an beliebiger Stelle des Klemmenaufbaus konfiguriert werden.

Zuordnen der Klemmen zu beliebigen Prozessabbildadressen

Da digitale Klemmen immer Byteweise zusammengefasst werden und daher das kleinste DP-Konfigurationsmodul ein 8-Bit-Modul ist, ergibt sich die Schwierigkeit, wenn die dazu gehörenden Klemmen in das SPS-Prozessabbild auf mehrere Bytes verteilt werden sollen, da in der SPS in der Regel die Adressen nur pro DP-Konfigurationsmodul vergeben werden können. Mit dem Multi-Configuration-Mode können jetzt zusätzliche digitale Klemmen als sogenannte Dummy Klemmen an beliebiger Stelle konfiguriert werden um somit die Adress-Offsets der anderen Klemmen im SPS-Prozessabbild zu verschieben.

Erstellen einer DP-Konfiguration für verschiedene Ausbaustufen des Buskopplers

Sofern man mit einem SPS-Programm verschiedene Ausbausstufen eines Prozesses steuern möchte, so kann es sinnvoll sein, trotz verschiedener ausbauspezifischer Klemmenkonfigurationen mit der gleichen DP-Konfiguration zu arbeiten, damit sich die Adress-Offsets im Prozessabbild nicht verändern oder ganz allgemein die DP-Konfiguration des Profibus DP-Masters bei jeder Ausbaustufe neu gespeichert werden muss. Mit dem Multi-Configuration-Mode kann man nun eine Maximal-Konfiguration des Buskopplers definieren, wobei hier je nach aktueller Ausbaustufe nur noch die nicht vorhandenen Klemmen zu disablen sind.

Einstellen des Multi-Configuration-Mode

Die Einstellungen zur Funktion Multi-Configuration-Mode befinden sich im Byte 3 der UserPrmData:

Byte Bit Beschreibung
3 4 1: Multi-Configuration-Mode ist aktiv

Das nachfolgende Bild zeigt die gerätespezifischen Parameterdaten im HardwareKonfigurator von Step 7, hier kann der MultiConfigMode aktiviert werden.

DP Multi-Configuration-Mode

Regeln beim Multi-Konfigurations-Mode

Im Multi-Configuration-Mode sind gegenüber der "normalen" Konfiguration eine paar zusätzliche Regeln zu beachten:

Es darf nur ein DP-Konfigurationsmodul je analoger Klemme konfiguriert werden

Die digitalen Klemmen sind als "KLxxxx Multi-Configuration-Mode"-Module an ihrer tatsächlichen Stelle anzugeben.

Die digitalen Klemmen sind nach den analogen Modulen als Input- bzw. Output-"Summenmodule" entsprechend ihrer Bitbreite im Prozessabbild anzugeben. Die Bitbreite der jeweiligen Ein- und Ausgangsklemmen ist hierbei zur Auswahl der entsprechenden digitalen In- und Outputs- "Summenmodule" jeweils als ganzes Byte (8 Bit) aufzurunden.

Das folgende Bild zeigt eine Maximalkonfiguration unter Step 7:

Es sind alle Module der Maximal-Konfigurarion bzw. inklusive der Reserve-Module anzugeben

Nicht gesteckte Module müssen disabled werden

Enablen/Disablen von Klemmen Die in der DP-Konfiguration vorhandenen, aber nicht gesteckten Klemmen müssen disabled werden. Das kann entweder in den UserPrmData oder mittels der azyklischen DPV1-Dienste (DPV1-Write) erfolgen.

Das nachfolgende Bild zeigt die gerätespezifischen Parameterdaten im HardwareKonfigurator von Step 7, hier können die einzelnen Module disabled werden.

In den UserPrmData werden von Byte 15 bis Byte 30 und Byte 41 bis Byte 56 die Zuordnungen der Klemmen (max. 128 Klemmen möglich) eingetragen. Dabei sind für jede Klemme 2 Bits reserviert die angeben, ob die jeweilige Klemme enabled (Wert 0) oder disabled (Wert 2) sind. Wenn die UserPrmData im DP-Konfigurationstool textuell angezeigt werden, so sind die Parameter "Zuordnung Modul x" auf "DP-DataExchange" (enabled) bzw. "disabled (Multi-Config.-Mode)" zu stellen.

Beispiel für den Multi-Konfigurations-Mode Im Maximalausbau des Buskopplers BK3120 sind die Klemmen KL2212, KL2114, KL1104, KL3064, KL4002 und die Endklemme KL9010 gesteckt.

Die DP-Konfiguration im Multi-Configuration-Mode sähe wie folgt aus:

Die Klemme 5 "KL4xx2" in der Maximalkonfiguration soll aufgrund einer geänderten Ausbaustufe disabled werden, wie im nachfolgenden Bild gezeigt wird.

Klemmenzuordnung in den UserPrmData:

Klemmenzuordnung per DPV1: DPV1 - Write
Slot-Nummer Index Daten 0 1 Byte 0: 16#00 Byte 1: 16#AA

Der Buskoppler merkt sich die zuletzt übergebene Konfiguration, so dass er auch nach einem Spannungsausfall wieder korrekt anläuft. Wenn ein Konfigurationsfehler festgestellt wird (z.B. beim ersten Hochlauf, wenn die tatsächliche Konfiguration mit DPV1 übergeben wird), geht der Buskoppler in statische Diagnose, meldet aber keinen Konfigurationsfehler und es kommt auch kein Code auf der DIA-LED. Sobald die tatsächliche Konfiguration mit DPV1 geschrieben wurde, geht der Buskoppler automatisch in den DP-DataExchange.


TwinCAT ADS DLL

Datum | Artikel-ID. | Artikelauswahl
27.06.2001 | 01060104 | Die ADS DLL Applikation hängt beim Windows 2000 Shutdown

zurück zur TwinCAT Übersicht


ADS-OCX in Delphi-Anwendungen I

Datum: 09.11.2000 Artikel-ID:00110701

Frage:

Welche ADS-OCX Methoden, Eigenschaften und Ereignisse können in Delphi nicht benutzt werden?

Antwort:

Folgende Eigenschaften, Methoden und Ereignisse verursachen Fehler in Delphi-Applikationen und dürfen nicht benutzt werden. Wie aus der Tabelle zu sehen ist, sollte die neueste Version von Delphi benutzt werden oder es muss auf einige Funktionalitäten verzichtet werden. Zu den aufgeführten Delphi-Versionen gibt es verschiedene Updates, die möglicherweise einige Fehler beheben.

 | Fehlerbeschreibung | Workaround | Delphi-Version
Eigenschaften |  |  | 3.0 | 4.0 | 5.0 | 6.0
AdsClientType | Beim Zugriff auf die Eigenschaft entsteht Memory-Leak. Speicher für den zurückgelieferten String wird nicht korrekt zurückgegeben. | n/a | Bug | ? | Fixed |
AdsClientAdsState | Beim Zugriff auf die Eigenschaft entsteht Memory-Leak. Speicher für den zurückgelieferten String wird nicht korrekt zurückgegeben. | n/a | Bug | ? | Fixed |
AdsClientAdsControl | Beim Zugriff auf die Eigenschaft entsteht Memory-Leak. Speicher für den zurückgelieferten String wird nicht korrekt zurückgegeben. | n/a | Bug | ? | Fixed |
AdsServerAdsControl | Beim Zugriff auf die Eigenschaft entsteht Memory-Leak. Speicher für den zurückgelieferten String wird nicht korrekt zurückgegeben. | n/a | Bug | ? | Fixed |
AdsServerAdsState | Beim Zugriff auf die Eigenschaft entsteht Memory-Leak. Speicher für den zurückgelieferten String wird nicht korrekt zurückgegeben. | n/a | Bug | ? | Fixed |
AdsServerType | Beim Zugriff auf die Eigenschaft entsteht Memory-Leak. Speicher für den zurückgelieferten String wird nicht korrekt zurückgegeben. | n/a | Bug | ? | Fixed |
AdsServerLastMessage | Beim Zugriff auf die Eigenschaft entsteht Memory-Leak. Speicher für den zurückgelieferten String wird nicht korrekt zurückgegeben. | n/a | Bug | ? | Fixed |
AdsAmsClientNetId | Beim Zugriff auf die Eigenschaft entsteht Memory-Leak. Speicher für den zurückgelieferten String wird nicht korrekt zurückgegeben. | n/a | Bug | ? | Fixed |
AdsAmsServerNetId | Beim Zugriff auf die Eigenschaft entsteht Memory-Leak. Speicher für den zurückgelieferten String wird nicht korrekt zurückgegeben. | n/a | Bug | ? | Fixed |
Methoden |  |  |  |  |  |
Alle Methoden | Die Funktionen der generierten Typbibliothek ADSOCXLib_TLB liefern undefinierte Rückgabeparameter. | Bitte installieren Sie den Delpphi 6 Update Pack 2 und binden Sie das ADSOCX neu ein. | - | - | kein Bug | Bug
AdsSyncReadReq AdsSyncWriteReq | Mit diesen Methoden können Variablen vom beliebigen Typ in die SPS übertragen oder aus der SPS gelesen werden. Die OleVariant-Parameter werden aber bei der AdsSyncReadReq-Methode per Wert und nicht per Reference übergeben. D.h. während des Aufrufs kann der Wert des data-Parameters von der Methode nicht geändert werden. Während des Aufrufs werden die SPS-Variablen zwar in eine entsprechende OleVariant-Variable hineinkopiert, die Variable ist aber nur eine Kopie der Variablen aus der aktuellen Parameterliste. Die Methoden-Prototypen für das ADS-OCX werden von der Delphi-Entwicklungsumgebung beim Einbinden des ADS-OCX automatisch generiert und können nicht beinflußt werden. | Benutzen Sie die "aufgelösten" Methoden um auf die SPS-Variablen synchron zuzugreifen (z.B. AdsSyncReadIntegerReq() u.s.w. ). | Bug | ? | Bug |
AdsReadVarConnectEx | Ähnlich wie bei den AdsSync-Methoden, werden die OleVariant-Parameter in den Ereignisfunktionen per Wert und nicht per Referenz übergeben. | Benutzen Sie die Methode AdsReadVarConnectEx2 | Bug | ? | Bug |
Ereignisse |  |  |  |  |  |
AdsReadConnectUpdateEx | Beim Aufrufen der Ereignisfunktion wird eine Zugriffsverletzung generiert. | Benutzen Sie die Ereignisfunktion AdsReadConnectUpdateEx2 | Bug | ? | Bug |


ADS-OCX in Delphi-Anwendungen II

Datum: 09.11.2000 Artikel-ID:00110702

Frage:

Wie kann ich die Property-Seite aufrufen?

Antwort:

Unter Delphi kann die Property-Seite auf folgende Weise aufgerufen werden:

procedure TForm1.ShowPropertyButtonClick(Sender: TObject);
begin
    AdsOcx1.BrowseProperties();
end;


ADS-OCX in Delphi-Anwendungen III

Datum: 09.11.2000 Artikel-ID: 00110703

Frage:

Wie kann ich ein Array in die SPS schreiben oder aus der SPS lesen?

Antwort:

Benutzen Sie die, für bestimmte Datentypen "aufgelösten" Methoden. Wenn Sie z.B. ein Array in der SPS vom Typ INT lesen wollen, können abhängig von der Zugriffsart z.B. folgende Methoden benutzt werden:

AdsSyncReadIntegerVarReq( hVar : Integer, length : Integer, var pData : Smallint )

AdsSyncReadIntegerReq( indexGroup : Integer, indexOffset : Integer, length : Integer, var pData : Smallint )

AdsSyncWriteIntegerVarReq(hVar : Integer, length : Integer, var pData : Smallint )

AdsSyncWriteIntegerReq( indexGroup : Integer, indexOffset : Integer, length : Integer, var pData : Smallint )

AdsReadIntegerReq( nInvokeId : Integer, nIndexGroup : Integer, nIndexOffset : Integer, cbLength : Integer )

AdsWriteIntegerReq( nInvokeId : Integer, nIndexGroup : Integer, nIndexOffset : Integer, cbLength : Integer, var pData : Smallint )

Auf String-Arrays kann auf diese Weise nicht zugegriffen werden. Die Länge der Daten, die gelesen oder geschrieben werden sollen, ergibt sich aus der Anzahl der zu lesenden oder zu schreibenden Elemente multipliziert mit der Byte-Größe eines Elementes. Diese Länge muss in dem length- oder cbLength-Parameter übergeben werden. Über den Parameter pData wird das erste Element des Delphi-Arrays übergeben.

Beispiel:

PROGRAM MAIN
VAR
    varIntArray :ARRAY[1..9] OF INT:=9(1);
END_VAR

Delphi Programm:

Array aus der SPS lesen:

procedure TForm1.SyncReadArrayVarButtonClick(Sender: TObject);
var i, hVar, AdsResult:integer;
    varIntArray       : ARRAY[1..9] OF Smallint;
begin
    AdsResult := AdsOcx1.AdsCreateVarHandle( 'MAIN.VARINTARRAY', hVar );
    if AdsResult = 0 then
    begin
        AdsResult := AdsOcx1.AdsSyncReadIntegerVarReq( hVar, sizeof(varIntArray), varIntArray[1] );
        if AdsResult = 0 then
        begin
            ListBox1.Clear();
            for i:=1 to 9 do
                ListBox1.Items.Add( Format('varIntArray[%d] = %d', [i, varIntArray[i]] ) );
        end
        else Label1.Caption := Format('AdsSyncReadIntegerVarReq error:%d', [AdsResult] );
        AdsOcx1.AdsDeleteVarHandle( hVar );
    end
    else Label1.Caption := Format('AdsCreateVarHandle error:%d', [AdsResult] );
end;

Array in die SPS schreiben:

procedure TForm1.SyncWriteArrayVarButtonClick(Sender: TObject);
var i, hVar, AdsResult:integer;
    varIntArray       : ARRAY[1..9] OF Smallint;
begin
    for i:=1 to 9 do
        varIntArray[i] := i;

    AdsResult := AdsOcx1.AdsCreateVarHandle( 'MAIN.VARINTARRAY', hVar );
    if AdsResult = 0 then
    begin
        AdsResult := AdsOcx1.AdsSyncWriteIntegerVarReq( hVar, sizeof(varIntArray), varIntArray[1] );
        if AdsResult > 0 then
            Label1.Caption := Format('AdsSyncWriteIntegerVarReq error:%d', [AdsResult] );
        AdsOcx1.AdsDeleteVarHandle( hVar );
    end
    else Label1.Caption := Format('AdsCreateVarHandle error:%d', [AdsResult] );
end;


ADS-OCX in Delphi-Anwendungen IV

Datum: 09.11.2000 Artikel-ID:00110704

Frage:

Wie kann ich einen String in die SPS schreiben oder aus der SPS lesen?

Antwort:

Die tatsächliche Länge eines SPS-Strings kann mit dem SPS-Operator SIZEOF ermittelt werden. In der SPS werden die Strings mit einer Null terminiert und die tatsächliche String-Länge errechnet sich aus der definierten Länge plus 1. Wurde bei der Stringdefinition keine Länge angegeben, dann besitzt der String eine tatsächliche Länge von 81 Zeichen inklusive der abschließenden Null.

Beispiel:

PROGRAM MAIN
VAR
    strColor 		:STRING(10)	:='Blue';
    strState 		:STRING(20)	:='STOP';
    strMessage 	:STRING		:='TwinCAT ADS-OCX';
END_VAR

strColor hat die Länge 11 Zeichen;

strState hat die Länge 21 Zeichen;

strMessage hat die Länge 81 Zeichen;

Delphi Programm:

String aus der SPS lesen:

procedure TForm1.ReadStringButtonClick(Sender: TObject);
var hVar        : Integer;
    varString   : WideString;
    AdsResult   : Integer;
begin
    SetLength( varString, 7 );
    AdsResult := AdsOcx1.AdsCreateVarHandle( 'MAIN.STRMESSAGE', hVar );
    if  AdsResult = 0 then
    begin
        AdsResult := AdsOcx1.AdsSyncReadStringVarReq( hVar, Length(varString)*2, varString );
        if  AdsResult = 0 then
            Edit1.Text := varString
        else Label1.Caption := Format('AdsSyncReadStringVarReq error:%d', [AdsResult] );
        AdsOcx1.AdsDeleteVarHandle( hVar );
    end
    else Label1.Caption := Format('AdsCreateVarHandle error:%d', [AdsResult] );
end;

In dem oberen Beispiel werden 7 Zeichen eines SPS-Strings in Delphi eingelesen. Die dynamischen String-Typen haben nach der Initialisierung die Länge Null. Damit das ADS-OCX den SPS-String in die Delphi-Stringvariable hineinkopieren kann, muss vorher die Delphi-Stringvariable auf die gewünschte Länge lokiert werden. Eine WideString-Variable in Delphi benötigt zwei Bytes pro Zeichen. Die Length-Funktion liefert die lokierte Anzahl der Zeichen im String. Der Length-Parameter im Methodenaufruf benötigt aber die Byte-Länge, deshalb wird die mit Length-Funktion ermittelte Länge verdoppelt..

String in die SPS schreiben:

procedure TForm1.WriteStringButtonClick(Sender: TObject);
var hVar        : Integer;
    varString   : WideString;
    AdsResult   : Integer;
begin
    varString:=Edit1.Text;
    AdsResult := AdsOcx1.AdsCreateVarHandle( 'MAIN.STRMESSAGE', hVar );
    if AdsResult = 0 then
    begin
        AdsResult := AdsOcx1.AdsSyncWriteStringVarReq( hVar, Length(varString)*2, varString );
        if AdsResult > 0 then
            Label1.Caption := Format('AdsSyncWriteStringVarReq error:%d', [AdsResult] );
        AdsOcx1.AdsDeleteVarHandle( hVar );
    end
    else Label1.Caption := Format('AdsCreateVarHandle error:%d', [AdsResult] );
end;


ADS-OCX in Delphi-Anwendungen VI

Datum: 09.11.2000 Artikel-ID: 00110706

Frage:

Muss ich jedes mal das Handle für die SPS-Variable neu holen?

Antwort:

Nein. Alle benötigten Handles können ein Mal beim Start der Applikation angefordert werden und beim Beenden der Applikation freigegeben werden. Ständiges Anfordern und Freigeben der Handles verursacht unnötige Belastung des Systems.

Die bereits angeforderten Handles werden beim TwinCAT Restart ungültig und müssen neu angefordert werden, ebenso nach jedem 'Rebuild All' in der SPS. Bei 'Rebuild All' wird in das Laufzeitsystem ein komplett neues Programm geladen, dadurch werden alle bereits angeforderten Handles ungültig und und von TwinCAT automatisch freigegeben. Die nicht mehr benötigten Handles müssen immer freigegeben werden. Dies kann aber nur dann erfolgen, wenn das TwinCAT System noch läuft. Wurde das TwinCAT System bereits gestoppt, dann werden alle Handles automatisch freigegeben.

Mit dem ersten Laufzeitsystem auf dem lokalen PC verbinden und das Handle der SPS-Variablen holen:

procedure TForm1.FormCreate(Sender: TObject);
begin
    AdsOcx1.AdsAmsServerNetId := AdsOcx1.AdsAmsClientNetId;
    AdsOcx1.AdsAmsServerPort := 801;
    AdsOcx1.AdsCreateVarHandle( 'MAIN.VARINTARRAY', hVar );
end;

Beim Beenden der Applikation Handle freigeben:

procedure TForm1.FormDestroy(Sender: TObject);
begin
    AdsOcx1.AdsDeleteVarHandle( hVar );
end;


ADS OCX in Delphi Anwendungen VII

Datum: 09.04.2001 Artikel-ID:01040707

Frage:

Die Applikation kann nach einem Programmfehler von der Entwicklungsumgebung nicht zurückgesetzt werden. Was kann man dagegen tun?

Antwort:

Nach einem Programmfehler kann oft nicht, wie sonst üblich, über die Bedienfunktion "Start -> Programm Reset" die Applikation beendet werden. Folgende Meldung des Debuggers ist die Folge:

Die Ursache liegt darin, dass bei der Benutzung des ADS-OCX eine Client-Server Verbindung zum TwinCAT Router erzeugt wird, die beim Beenden der Applikation abgebaut werden muss. Die Delphi-Applikation kann über den Menübefehl "Programm Reset" nicht beendet werden weil zu diesem Zeitpunkt eine Verbindung zum TwinCAT Router besteht. In der Applikation wird die Verbindung durch Zuweisung der AdsAmsNetId und der Portnummer erzeugt.

Es gibt folgende Möglichkeiten die Applikation zu beenden ohne den Rechner neu starten zu müssen:

  • Zuerst den Laufzeitfehler mit OK bestätigen, dann TwinCAT System Stop über die Taskleiste aufrufen und dann Delphi-Applikation zurücksetzen. Es werden dabei bestehende Verbindungen zu den Clients abgebaut. Nachteil: Das TwinCAT System und die SPS muss nachher neu gestartet werden;
  • Zuerst den Laufzeitfehler mit OK bestätigen und Router-Cleanup über die Taskleiste aufrufen und dann Delphi-Applikation zurücksetzen;
  • Exception-Handling benutzen. Über die Methode AdsAmsDisconnect() kann die Verbindung zum Router explizit abgebaut werden;
        try
        n:=8; Switch[n].Tag:=0; // Dieser Index ist unzulässig
    except
        on EAccessViolation do
        begin
            AdsOcxSPS.AdsAmsDisconnect();
            Application.Terminate();
        end;
    end;


ADS OCX in Delphi Anwendungen VIII

Datum: 09.04.2001 Artikel-ID: 01040708

Frage:

Ich möchte mehrere boolschen Variablen mit einem Zugriff in ein Delphi-Array einlesen, bekomme aber immer nur das erste Element zurück.

Antwort:

Mehrere boolesche SPS-Variablen können mit einem Zugriff in Delphi-Applikation eingelesen werden, wenn diese Variablen auf Adressen lokiert wurden, die hintereinander im Speicher liegen. Wichtig ist aber, dass die erste Variable auf eine Byteadresse lokiert wurde:

varBoolean AT%MB6 : ARRAY[1..4] OF BOOL;

Delphi-Applikation

procedure TForm1.Button3Click(Sender: TObject);
var 	i, hVar, AdsResult:integer;
    varBoolArray : ARRAY[1..4] OF WordBool;
begin
    AdsResult := AdsOcx1.AdsCreateVarHandle( 'MAIN.VARBOOLEAN', hVar );
    if AdsResult = 0 then
    begin
        AdsResult := AdsOcx1.AdsSyncReadBoolVarReq( hVar, sizeof(varBoolArray), varBoolArray[1] );
        if AdsResult = 0 then
        begin
            ListBox1.Clear();
            for i:=1 to 4 do
            ListBox1.Items.Add( Format('varBoolArray[%d] = %d', [i, Ord(varBoolArray[i])] ) );
        end
        else Label1.Caption := Format('AdsSyncReadBooleanVarReq error:%d', [AdsResult] );
    end;
end;


Einfügen (Registrieren) des ADS OCX

Datum: 09.04.2001 Artikel-ID: 01040709

Frage:

Kann ich das ADS OCX ohne Reboot des Rechners einfügen?

Antwort:

Das ADS OCX kann mit Regsvr32 eingefügt werden. Dazu ist der Pfad der zu registrierenden Datei anzugeben.

Ein Reboot des Rechners ist nicht erforderlich.


TwinCAT OCX

Datum | Artikel-ID. | Artikelauswahl
09.11.2000 | 00110705 | ADS OCX in Delphi Anwendungen V
27.06.2001 | 01060710 | Die ADS OCX Applikation hängt beim Windows 2000 Shutdown
20.02.2004 | 04020711 | Methode AdsSyncReadBoolVarReq liefert keine Daten in Borland Builder 6 Applikationen

zurück zur TwinCAT Übersicht


Speicherbedarf TON, TOP

Beckhoff Knowledge Base: PLC Control

Speicherbedarf TON, TOF

Datum:11.06.2001 Artikel-ID: 01060803

Frage:

Wie groß ist der Speicherbedarf der Funktion TON bzw. TOF unter TwinCAT?

Antwort:

Die Funktion TON bzw. TOF benötigt 15 Byte Daten.


BC9000: Datenspeicher zu klein

Datum: 12.06.2001 Artikel-ID:01060805

Frage:

Beim Übersetzen bekommen Sie die Meldung, dass Ihr Datenspeicher nicht ausreicht. Wie kann der Datenspeicher erhöht werden?

Antwort:

Indem Sie im PLC Control unter dem Menüpunkt Projekt - Optionen - Buscontroller den Slider nach links verschieben oder das "Large Model" aktivieren:


BC9000: Programmspeicher zu klein

Datum: 12.06.2001 Artikel-ID:01060806

Frage:

Beim Übersetzen bekommen Sie die Meldung, dass Ihr Programmspeicher nicht ausreicht. Wie kann der Programmspeicher erhöht werden?

Antwort:

Indem Sie im PLC Control unter dem Menüpunkt Projekt - Optionen - Buscontroller den Slider nach rechts verschieben oder das "Large Model" aktivieren:


Fehlermeldung: Array zu groß

Datum: 06.07.2001 Artikel-ID:01070809

Frage:

Wie definiere ich ein Array mit mehr als 1 MB ?

Beim Compilieren tritt folgende Fehlermeldung auf:

Antwort:

Sie müssen unter "Projekt" --> "Optionen" --> "TwinCAT" den Wert "Daten" auf einen passenden Wert erhöhen,

dann das Projekt speichern, schließen und wieder öffnen, danach wird das Array fehlerfrei übersetzt.

Das Problem mit dem Schließen und Öffnen wird in einer der nächsten Versionen der TwinCAT behoben sein. > TwinCAT 2.7 Build 459


TwinCAT PLC Task Intervallzeiten kleiner 1ms

Beckhoff Knowledge Base: PLC Control

TwinCAT PLC Task-Intervallzeiten < 1ms

Datum: 11.09.2002 Artikel-ID:02090811

Frage:

Wie führt man unter TwinCAT SPS Tasks mit Intervallzeiten < 1ms aus?

Antwort:

Sofern das gewählte Feldbussystem Update-Zeiten kleiner als 1ms unterstützt, beziehungsweise keine E/A-Variablen oder bei Feldbussystemen mit prioritätsgesteuerten Telegrammen (z.B. Lightbus) nur ausgewählte E/A-Variablen sehr schnell aufgefrischt werden sollen, können SPS-Task mit Zeiten < 1ms getriggert werden. Die notwendigen Einstellungen sind im Folgenden beschrieben.

Schritt 1: Die TwinCAT Basiszeit muß auf den gewünschten Wert, wie unter Echtzeit - Einstellungen beschrieben, eingestellt werden.

Schritt 2: Bei der im System Manager eingebundenen SPS-Konfiguration muß die Checkbox "Task Zykluszeiten werden in Ticks interpretiert" aktiviert werden.

Schritt 3: Danach muß die Konfiguration wie üblich gesichert und das TwinCAT System neu gestartet werden.

Beispiel:

Eine im SPS-Projekt eingestellte Task von "T#1ms", würde, nach Ausführung der oben beschriebenen Schritte, bei einer eingestellten Basiszeit von 333us und aktivierter Checkbox anschließend mit 333us aufgefrischt.


Automatisches Einloggen in Windows NT

Datum: 12.12.2000 Artikel-ID:00121103

Frage:

Wie kann ich mich automatisch in Windows NT einloggen?

Antwort:

Über die Konfiguration der TwinCAT System Eigenschaften kann ein automatisches Einloggen (Auto Logon) in Windows NT erfolgen.

Dazu muss in dem Karteireiter 'System' der 'TwinCAT System Eigenschaften' eine entsprechende Änderung vorgenommen werden.

Einstellungen:

Sie öffnen diesen Karteireiter mit einem Mausklick auf den TwinCAT Realtime Server und aktivieren das Menü Eigenschaften.

Daraufhin öffnet sich folgendes Fenster:

Dort wählen Sie 'Enable Auto Logon' und geben Ihren Benutzernamen (User Name) und Ihr Passwort ein. Nach Bestätigung mit 'OK' hat Windows NT diese Einstellungen übernommen. Vergeben Sie an dieser Stelle kein Passwort, funktioniert das automatische Einloggen nur einmalig (Windows NT Eigenschaft).

Automatisches Einloggen aufheben:

Um das automatische Einloggen trotz der angewählten Einstellungen zu unterbrechen, muss während des Einloggens die Shift Taste gedrückt gehalten werden. Dadurch wird das Auto Logon abgebrochen und Sie können sich wie gewohnt in Windows NT einloggen.


TwinCAT ohne Maus starten

Datum: 05.12.2000 Artikel-ID:00121104

Frage:

Wie kann ich den TwinCAT System Manager oder TwinCAT PLC Control ohne Maus starten?

Antwort:

Mit Alt und ( [NUM] + ) kann der TwinCAT Realtime Server geöffnet werden, ohne die Maus zu benutzen.


TwinCAT und Windows NT

Datum: 06.03.2002 Artikel-ID: 02031116

Frage:

Wie ist die Taskausführung unter Berücksichtigung der verschiedenen Prioritäten und der Ausführungszeit von Windows NT geregelt?

Antwort:

Die folgende Grafik gibt ein Beispiel für die Ausführungszeiten wieder.

Die höherpriore Task1 wird mit jedem Zyklus ausgeführt. Die verbleibende Zeit zur Taskausführung wird vom Task2 (niedere Priorität) genutzt. Die Ausführungszeit von Windows NT beträgt in jedem Zyklus konstante 50 %.


TwinCAT und Windows NT

Datum: 06.03.2002 Artikel-ID: 02031117

Frage:

Wie ist die Taskausführung und die Ausführungszeit von Windows NT geregelt?

Antwort:

Die folgende Grafik gibt ein Beispiel für die Ausführungszeiten wieder.

Die Ausführungszeit von NT beginnt, wenn die Taskausführung beendet ist, jedoch spätestens nach der Hälfte der Zeit (50 %). Falls die Taskausführung mehr Zeit, als die eingestellten 50 % benötigt, wird sie zu Gunsten von Windows NT unterbrochen, und im nächsten Zyklus zu Ende geführt. Wird in einem Zyklus keine Task ausgeführt, kann die Rechenzeit zu 100 % von Windows NT genutzt werden.


TwinCAT und die Echtzeit

Datum: 15.03.2002 Artikel-ID: 02031118

Frage:

Kann man TwinCAT ohne ausgeführte Echtzeit benutzen? Welche Einschränkungen ergeben sich daraus?

Antwort:

TwinCAT kann auch ohne ausgeführte Echtzeit benutzt werden.

Nach erfolgreicher Installation muss im TwinCAT System Manager unter Echtzeit-Einstellungen die Basiszeit auf "keine" gesetzt werden.

Dadurch wird die Echtzeit nicht ausgeführt.

Ausführungen, die keine Echtzeit benötigen, arbeiten uneingeschränkt weiter (AMS Router, TwinCAT Scope, ADS OCX, ...)

Einschränkung:

Echtzeit Tasks, wie beispielsweise SPS Tasks, Software Tasks und I/O Tasks (Profibus, DeviceNet, Sercos oder Lightbus) können nicht ausgeführt werden.


CAN Box Reset

Datum: 03.11.2000 Artikel-ID: 00110904

Frage:

Wie kann ich einen CAN Box Reset durchführen?

Antwort:

Der CAN Box Reset erfolgt in 8 Schritten.

1.Schritt:

Zunächst muss die Box angefügt werden. Dazu wird die Dialogbox unter dem Gerät, hier FC510x (CANopen Master, PCI) geöffnet.

2.Schritt:

Im Dialog 'Anfügen eines Gerätes', wird unter 'Verschiedenes' CANopenNode ausgewählt.

3.Schritt:

Die Box besitzt jeweils 2 Ein- und Ausgänge. Bis auf den Ausgang RxPDO 1 werden alle gelöscht.

4.Schritt:

Im zugehörigen Karteireiter der Box CANopen Node ist folgende Einstellung vorzunehmen:

5.Schrtt:

Im Karteireiter des AusgangsRxPDO 1, ist die COB ID, wie dargestellt, auf Null zu setzen.

6.Schritt:

Durch Öffnen der Dialogbox unter RxPDO 1 'Ausgänge' können weitere Variablen eingefügt werden.

7.Schritt:

Im geöffneten Dialog 'Einfügen von Variablen' sind folgende Einstellungen notwendig:

8.Schritt:

Daraus ergibt sich unter 'Zuordnungen' folgende Darstellung.

Damit ist der CAN Box Reset beendet.


SERCOS und die Bedeutung der Phasen

Datum: 03.11.2000 Artikel-ID: 00110905

Frage:

Was bedeuten die einzelnen Phasen während der Initialisierung zwischen Master und Antrieb?

Antwort:

SERCOS basiert auf der Lichtwellenleitertechnik (LWL) und hat ein sehr deterministisches Zeitverhalten. Um dieses Zeitverhalten zu erreichen, werden während der Initialisierung im mehreren Phasen Parameter zwischen Master und Antrieb ausgetauscht. Die Bedeutung der einzelnen Phasen wird in der folgenden Tabelle dargestellt.

Phase | Beschreibung
0 | - Es wird in dieser Phase überprüft, ob der Lichtwellenleiterring physikalisch geschlossen ist
1 | - Die Adressen der Antriebe im Ring werden auf Eindeutigkeit überprüft. Jeder Antrieb muss dabei den Empfang, eines an ihn gerichteten Telegramms, bestätigen.
2 | - Jeder Antrieb tritt in azyklischen Datenaustausch mit dem Master. Dabei werden die im Antrieb hinterlegten Zeiten für die Zeitschlitzberechnung abgefragt. - Der Master berechnet die Zeitschlitze und schreibt die spezifischen Werte zurück in den jeweiligen Antrieb - Falls Startup-Parameter angegeben sind, werden diese jetzt in den Antrieb heruntergeschrieben
3 | - Das berechnete Timing ist ab jetzt aktiv - Prozessdaten sind noch nicht aktiv / gültig
4 | - Prozessdaten sind ab jetzt gültig - Über Ctrl/Stat Bits kann der Antrieb nun in Regelung versetzt werden - Die Initialisierung ist abgeschlossen

Nähere Informationen zu SERCOS unter TwinCAT erhalten Sie unter: TwinCAT System Manager - Referenz.


Einstellungen des BC2000

Datum: 11.12.2000 Artikel-ID: 00120909

Frage:

Wie kann ich den BC2000 im TwinCAT System Manager einbinden?

Antwort:

Grundeinstellungen

Im TwinCAT System Manager werden die grundlegenden Eigenschaften des Busklemmen Controllers getätigt.
Die Klemmen des Busklemmen Controllers können direkt dem Lightbus Master oder dem BC2000 zugeordnet werden. Klemmen die dem BC2000 direkt zugeordnet sind, werden im System Manager mit "PLC" dargestellt und sind für den Master nicht sichtbar. Bei den analogen PLC-Klemmen kann noch zwischen "Komplex" und "Kompakt" unterschieden werden.

Komplex: Vollständige Darstellung der analogen Klemmen mit Control/Status, 4Byte Input/Output pro Kanal
Kompakt: Nur Nutzdaten, 2 Byte pro Kanal

Die Klemmen, die man dem Master zuweist, sind für den Busklemmen Controller unsichtbar. Möchte man eine Klemme für beide Systeme sichtbar machen, muss die Klemme erst dem BC2000 zugeordnet werden. Über die SPS Variablen werden die Daten dann von der Klemme zum Master übertragen.

Die Einstellungen für die SPS im Busklemmen Controller findet man unter dem Karteireiter "PLC". Dort werden alle Grundeinstellungen getätigt, die die Eigenschaften der SPS auf dem BC2000 regeln.

PLC Cycle Time

Die PLC Cycle Time bestimmt die Wiederholungssequenz des Programms. Diese Zeit ist nicht deterministisch. Das Bedeutet, wenn das Programm auf dem Busklemmen Controller mehr Zeit benötigt steigt die PLC Cycle Time an. Braucht das Programm unter der Zeit, der Cycle Time wird das Programm mit der eingestellten Cycle Time wiederholt. In der Background Time läuft die Bearbeitung des Lightbusses und der seriellen Schnittstelle. Diese sollte auf ca. 20 % der PLC Cycle Time eingestellt sein.

Beispiel zum Optimieren der Zykluszeit

Um das System zu optimieren misst man die "Mittlere Zykluszeit". Dies finden Sie im PLC Control unter Online\Koppler. Die dort ermittelt Zeit gibt man einen Aufschlag von 20% - 30% und trägt die Zeit als PLC Cycle Time ein. Die Backgroud Time stellt man auf 20% der PLC Cycle Time ein.

PLC Cycle Time = Mittlere Zykluszeit + 20% = 10 ms + 20% = 12 ms

Background Time = PLC Cycle Time * 0,2 = 12 ms * 0,2 = 2,4 ms " 2 ms

Mittlere Zykluszeit

Die gemessenen Zykluszeit beinhaltet auch den K-Bus Update. Daher besteht ein Zusammenhang zwischen der Anzahl der gesteckten Klemmen und der Zykluszeit. Der Busklemmen Controller führt vor dem Programmaufruf einen K-Bus Update aus, um die Eingänge abzufragen. Nach der Programmbearbeitung führt der BC2000 erneut ein K-Bus Update durch, um die aktuellen Ausgänge zu schreiben. Danach folgt die Background Time. Man kann die Zykluszeit verkürzen, in dem man den K-Bus Update für Ein- und Ausgänge gleichzeitig ausführen lässt (siehe K-Bus Update).

SPS Variablen

SPS Variablen sind Variablen, die im BC2000 ab Adresse %IB128 und %QB128 liegen. Diesen Offset kann man Verschieben. Diese Adressen sind keiner Klemme zugeordnet, d.h. es können Signale oder Daten über die SPS Variablen zum Master übertragen oder empfangen werden.

Remanente Variablen

Retain- oder remanente Variablen sind Daten, die bei einem Spannungsausfall den Variablenwert speichern. Im PLC Control werden diese Daten auf den lokierten Merkerbereich gelegt. In der Default Einstellung bedeutet dies, dass alle Variablen von %MB0 - %MB63 RETAIN Daten sind. Die maximale Einstellung beträgt 512 Byte.

K-Bus Update

Double Cycle: Klemmbuseingänge vor dem SPS Zyklus, Klemmbusausgänge nach dem SPS Zyklus

Before PLC: Klemmbuseingänge - und ausgänge vor dem SPS Zyklus

After PLC: Klemmbuseingänge - und ausgänge nach dem SPS Zyklus

Programm-Download über den LWL Ring

TwinCAT bietet die Eigenschaft, das Programm über den LWL Ring auf den BC2000 zu spielen. Dafür muss im System Manager, unter dem Karteireiter ADS/AMS, die String Communication und das Ams/Ads aktiviert sein. Nach dem Sichern der Konfiguration startet man das TwinCAT System. Nun kann im PLC Control das Zielsystem der BC2000 angewählt werden.

Auswahl der Zielplattform:

Beim Neustart des TwinCAT PLC Control fragt das Programm nach der Zielplattform, d.h. auf welchem Gerät der Anwender sein Programm später laufen lassen möchte. TwinCAT bietet zwei Zielplattformen, den PC als Steuerung und den BC2000 Koppler. Für die Programmierübertragung mit dem Busklemmen Controller gibt es wiederum zwei Möglichkeiten. Das "AMS" für die Kommunikation über den Feldbus und die "serielle" Kommunikation über die serielle Schnittstelle des PCs und der Programmierschnittstelle des BC2000.

Auswahl des Zielsystems:

Nachdem das Programm geschrieben wurde, wird unter der Symbolleiste "Online" das Zielsystem ausgewählt. In diesem Beispiel die C1220 mit der Box1 und die Run-Time1 des Busklemmen Controllers.

Programm-Download über RS232 Schnittstelle

Jeder Busklemmen Controller bietet die Möglichkeit, über die RS232 Schnittstelle des PC programmiert zu werden. Dies ist über ein spezielles Kabel realisierbar.

Dafür wird im PLC Control die serielle Schnittstelle angewählt.

Kommunikationsparameter

Unter Online/Kommunikationsparameter findet man im PLC Control die Einstellungen zur seriellen Schnittstelle, Portnummer, Baudrate usw. Der Busklemmen Controller benötigt folgende Einstellung:

Baudrate: 19200

Stop Bits: 1

Parity: Gerade


BC3100 im System Manager einbinden

Datum: 22.05.2001 Artikel-ID: 0050911

Frage:

Wie wird der BC3100 im System Manager eingebunden?

Antwort:

E/A-Konfiguration:

Im TwinCAT System Manager werden die grundlegenden Eigenschaften des Busklemmen Controllers getätigt.
Die Klemmen des Busklemmen Controllers können direkt dem Profibus Master oder dem BC3100 zugeordnet werden. Klemmen die dem BC3100 direkt zugeordnet sind, werden im System Manager mit "PLC" dargestellt und sind für den Master nicht sichtbar. Bei den analogen PLC-Klemmen kann noch zwischen "Komplex" und "Kompakt" unterschieden werden.
Komplex: Vollständige Darstellung der analogen Klemmen mit Control/Status, 4Byte Input/Output pro Kanal
Kompakt: Nur Nutzdaten, 2 Byte pro Kanal
Die Klemmen, die man dem Master zuweist, sind für den Busklemmen Controller unsichtbar. Möchte man eine Klemme für beide Systeme sichtbar machen, muss die Klemme erst dem BC3100 zugeordnet werden. Über die SPS Variablen werden die Daten dann von der Klemme zum Master übertragen.

Beim Einfügen der SPS Variablen, wird folgendes Fenster geöffnet, welches die Startadresse festlegt.

Die Einstellungen für die SPS im Busklemmen Controller findet man unter dem Karteireiter "PLC". Dort werden alle Grundeinstellungen getätigt, welche die Eigenschaften der SPS auf dem BC3100 regeln.

PLC Cycle Time

Die PLC Cycle Time bestimmt die Wiederholungssequenz des Programms. Diese Zeit ist nicht deterministisch. Das Bedeutet, wenn das Programm auf dem Busklemmen Controller mehr Zeit benötigt steigt die PLC Cycle Time an. Braucht das Programm unter der Zeit, der Cycle Time wird das Programm mit der eingestellten Cycle Time wiederholt. In der Background Time läuft die Bearbeitung des Profibus und der seriellen Schnittstelle. Diese sollte auf ca. 20 % der PLC Cycle Time eingestellt sein.

Beispiel zum Optimieren der Zykluszeit

Um das System zu optimieren misst man die "Mittlere Zykluszeit". Dies finden Sie im PLC Control unter Online\Koppler. Die dort ermittelt Zeit gibt man einen Aufschlag von 20% - 30% und trägt die Zeit als PLC Cycle Time ein. Die Background Time stellt man auf 20% der PLC Cycle Time ein.

PLC Cycle Time = Mittlere Zykluszeit + 20% = 10 ms + 20% = 12 ms

Background Time = PLC Cycle Time * 0,2 = 12 ms * 0,2 = 2,4 ms " 2 ms

Mittlere Zykluszeit

Die gemessenen Zykluszeit beinhaltet auch den K-Bus Update. Daher besteht ein Zusammenhang zwischen der Anzahl der gesteckten Klemmen und der Zykluszeit. Der Busklemmen Controller führt vor dem Programmaufruf einen K-Bus Update aus, um die Eingänge abzufragen. Nach der Programmbearbeitung führt der BC3100 erneut ein K-Bus Update durch, um die aktuellen Ausgänge zu schreiben. Danach folgt die Background Time. Man kann die Zykluszeit verkürzen, in dem man den K-Bus Update für Ein- und Ausgänge gleichzeitig ausführen lässt (siehe K-Bus Update).

SPS Variablen

SPS Variablen sind Variablen, die im BC3100 ab Adresse %IB128 und %QB128 liegen. Diesen Offset kann man Verschieben. Diese Adressen sind keiner Klemme zugeordnet, d.h. es können Signale oder Daten über die SPS Variablen zum Master übertragen oder empfangen werden.

Remanente Variablen

Retain- oder remanente Variablen sind Daten, die bei einem Spannungsausfall den Variablenwert speichern. Im PLC Control werden diese Daten auf den lokierten Merkerbereich gelegt. In der Default Einstellung bedeutet dies, dass alle Variablen von %MB0 - %MB63 RETAIN Daten sind. Die maximale Einstellung beträgt 512 Byte.

K-Bus Update

Double Cycle: Klemmbuseingänge vor dem SPS Zyklus, Klemmbusausgänge nach dem SPS Zyklus

Before PLC: Klemmbuseingänge und -ausgänge vor dem SPS Zyklus

After PLC: Klemmbuseingänge und -ausgänge nach dem SPS Zyklus

Programm-Download über den Profibus

TwinCAT bietet die Eigenschaft, das Programm über den Profibus auf den BC3100 zu spielen. Dafür muss im System Manager, unter dem Karteireiter ADS, Erzeuge Port und NetID aktiviert sein.

Dadurch ändert sich der PLC Karteireiter wie folgt:

Bei größeren Programmen muss AMS Response during download angewählt sein.

Nach dem Sichern der Konfiguration startet man das TwinCAT System. Nun kann im PLC Control das Zielsystem des BC3100 angewählt werden.

TwinCAT PLC Control:

Beim Neustart des TwinCAT PLC Control fragt das Programm nach der Zielplattform, d.h. auf welchem Gerät der Anwender sein Programm später laufen lassen möchte. TwinCAT bietet zwei Zielplattformen, den PC als Steuerung und den BC3100 Koppler. Für die Programmierübertragung mit dem Busklemmen Controller gibt es wiederum zwei Möglichkeiten. Das "AMS" für die Kommunikation über den Feldbus und die "serielle" Kommunikation über die serielle Schnittstelle des PCs und der Programmierschnittstelle des BC3100. (Zu öffnen unter dem Karteireiter Resourcen -> Steuerungskonfiguration)

Auswahl des Zielsystems:

Nachdem das Programm geschrieben wurde, wird unter der Symbolleiste "Online" das Zielsystem ausgewählt. In diesem Beispiel die FC310x mit der Box1 und die Run-Time BC des Busklemmen Controllers.


Klemmenkonfiguration / GSD Datei

Datum: 23.07.2001 Artikel-ID: 01070914

Frage:

Ich kann die Klemme KL1xx2 in der GSD Datei nicht finden!

Wie kann diese Klemme konfiguriert werden?

Antwort:

In der GSD Datei sind die Bezeichnungen KL1xx2 oder KL2xx2 nicht aufgelistet, da es sich dabei um die Beckhoff Bezeichnungen handelt.

Die Klemme KL1002 besitzt 2 digitale Eingänge, also ist hier 8 Bit Digital Inputs anzuwählen:

Für die Klemme KL2012 ist entsprechend 8 Bit Digital Outputs, und für die KL1104 ist 16 Bit Digital Inputs anzuwählen, usw.