Unit NoDaveComponent

Used Units:

Used in interface: System, SysInit, SysUtils, Classes, NoDave, SyncObjs, Windows
Used in implementation: None

Description:

TODO
Before Installation:
Please copy the file \pascal\nodave.pas into the directory, where the file nodavecomponent.pas is located !

Delphi-Installation:
1. Select Component - Install in the Delphi-menu
2. Select Add... button
3. Select Browse
4. Select NoDaveComponent.pas
5. Select OK

Lazarus-Installation:
1. Select Components - Open package file
2. Select nodavepackage.lpk
3. Select Open
4. Select Compile
5. Select Install
6. Select Yes
The Unit NoDaveComponent implements the class TNoDave, which encapsulates the access to the libnodave.dll.
With TNoDave and libnodave.dll it is very easy to read and write data from and to a S7 PLC.

Simatic, Simatic S5, Simatic S7, S7-200, S7-300, S7-400 are registered Trademarks of Siemens Aktiengesellschaft, Berlin und Muenchen.
Author:

List of Constants:

Global Constants: BAF, BUS1F, BUS2F, CRST, daveAnaIn, daveAnaOut, daveComSpeed115_2k, daveComSpeed19_2k, daveComSpeed38_4k, daveComSpeed57_6k, daveComSpeed9_6k, daveCounter, daveDB, daveDebugByte, daveDebugCompare, daveDebugConnect, daveDebugExchange, daveDebugInitAdapter, daveDebugListReachables, daveDebugMPI, daveDebugPacket, daveDebugPassive, daveDebugPDU, daveDebugPrintErrors, daveDebugRawRead, daveDebugRawWrite, daveDebugSpecialChars, daveDebugUpload, daveDI, daveFlags, daveInputs, daveLocal, daveOutputs, daveP, daveProtoAS511, daveProtoIBH, daveProtoIBH_PPI, daveProtoISOTCP, daveProtoISOTCP243, daveProtoMPI, daveProtoMPI2, daveProtoMPI3, daveProtoMPI4, daveProtoNLPro, daveProtoPPI, daveProtoS7Online, daveSpeed1500k, daveSpeed187k, daveSpeed19k, daveSpeed45k, daveSpeed500k, daveSpeed93k, daveSpeed9k, daveSysFlags, daveSysInfo, daveTimer, daveV, EXTF, FRCE, IFM1F, IFM2F, INTF, MSTR, NONE, RACK0, RACK1, RACK2, REDF, RUN, SF, STOP, USR, USR1
File-Local Constants: None

List of Simple Types:

Global Simple Types: PSzlBGDiagInfo, PSzlBGIdent, PSzlBGState, PSzlBlockType, PSzlDiagMessage, PSzlLedState, PSzlStationState, PSzlSystemMemory, PSzlUserMemory, TNoDaveArea, TNoDaveComSpeed, TNoDaveDebugOption, TNoDaveDebugOptions, TNoDaveOnErrorEvent, TNoDaveProtocol, TNoDaveReachablePartnersMPI, TNoDaveSpeed, TSzlLed
File-Local Simple Types: None

List of Records:

Global Records: TSzlBGDiagInfo, TSzlBGIdent, TSzlBGState, TSzlBlockType, TSzlDiagMessage, TSzlLedState, TSzlStationState, TSzlSystemMemory, TSzlUserMemory
File-Local Records: None

List of Classes:

Global Classes: TNoDave
File-Local Classes: TNoDaveConnectThread, TNoDaveReadThread

List of Functions:

Global Functions:
unit interface procedure Register
Installation of TNoDave in the component palette
File-Local Functions: None

Constants:

unit interface BAF = TSzlLed( 8)
unit interface BUS1F = TSzlLed( 11)
unit interface BUS2F = TSzlLed( 12)
unit interface CRST = TSzlLed( 7)
unit interface daveAnaIn = TNoDaveArea( 2)
Analog input words of 200 family
Used in
TNoDave.AreaCode
unit interface daveAnaOut = TNoDaveArea( 3)
Analog output words of 200 family
Used in
TNoDave.AreaCode
unit interface daveComSpeed115_2k = TNoDaveComSpeed( 4)
Used in
TNoDave.DoConnect
unit interface daveComSpeed19_2k = TNoDaveComSpeed( 1)
Used in
TNoDave.DoConnect
unit interface daveComSpeed38_4k = TNoDaveComSpeed( 2)
Used in
TNoDave.Create, TNoDave.DoConnect
unit interface daveComSpeed57_6k = TNoDaveComSpeed( 3)
Used in
TNoDave.DoConnect
unit interface daveComSpeed9_6k = TNoDaveComSpeed( 0)
Used in
TNoDave.DoConnect
unit interface daveCounter = TNoDaveArea( 11)
Counter
Used in
TNoDave.AreaCode
unit interface daveDB = TNoDaveArea( 7)
Data Blocks (global data)
Used in
TNoDave.AreaCode, TNoDave.Create
unit interface daveDebugByte = TNoDaveDebugOption( 7)
unit interface daveDebugCompare = TNoDaveDebugOption( 8)
unit interface daveDebugConnect = TNoDaveDebugOption( 5)
unit interface daveDebugExchange = TNoDaveDebugOption( 9)
unit interface daveDebugInitAdapter = TNoDaveDebugOption( 4)
unit interface daveDebugListReachables = TNoDaveDebugOption( 3)
unit interface daveDebugMPI = TNoDaveDebugOption( 12)
unit interface daveDebugPacket = TNoDaveDebugOption( 6)
unit interface daveDebugPassive = TNoDaveDebugOption( 14)
unit interface daveDebugPDU = TNoDaveDebugOption( 10)
unit interface daveDebugPrintErrors = TNoDaveDebugOption( 13)
unit interface daveDebugRawRead = TNoDaveDebugOption( 0)
unit interface daveDebugRawWrite = TNoDaveDebugOption( 2)
unit interface daveDebugSpecialChars = TNoDaveDebugOption( 1)
unit interface daveDebugUpload = TNoDaveDebugOption( 11)
unit interface daveDI = TNoDaveArea( 8)
Data Blocks (instance data) ?
Used in
TNoDave.AreaCode
unit interface daveFlags = TNoDaveArea( 6)
Flags/Markers
Used in
TNoDave.AreaCode
unit interface daveInputs = TNoDaveArea( 4)
Input memory image
Used in
TNoDave.AreaCode
unit interface daveLocal = TNoDaveArea( 9)
Data Blocks (local data) ?
Used in
TNoDave.AreaCode
unit interface daveOutputs = TNoDaveArea( 5)
Output memory image
Used in
TNoDave.AreaCode
unit interface daveP = TNoDaveArea( 13)
Peripherie Input/Output
Used in
TNoDave.AreaCode
unit interface daveProtoAS511 = TNoDaveProtocol( 10)
S5 via programmer-port
Used in
TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveProtoIBH = TNoDaveProtocol( 7)
IBH-Link TCP/MPI-Adapter
Used in
TNoDave.DoConnect, TNoDave.ProtCode, TNoDave.ResetInterface
unit interface daveProtoIBH_PPI = TNoDaveProtocol( 8)
IBH-Link TCP/MPI-Adapter with PPI-Protocol
Used in
TNoDave.DoConnect, TNoDave.ProtCode, TNoDave.ResetInterface
unit interface daveProtoISOTCP = TNoDaveProtocol( 5)
ISO over TCP
Used in
TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveProtoISOTCP243 = TNoDaveProtocol( 6)
ISO over TCP (for CP243)
Used in
TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveProtoMPI = TNoDaveProtocol( 0)
MPI-Protocol
Used in
TNoDave.Create, TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveProtoMPI2 = TNoDaveProtocol( 1)
MPI-Protocol (Andrew's version without STX)
Used in
TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveProtoMPI3 = TNoDaveProtocol( 2)
MPI-Protocol (Step 7 Version version)
Used in
TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveProtoMPI4 = TNoDaveProtocol( 3)
MPI-Protocol (Andrew's version with STX)
Used in
TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveProtoNLPro = TNoDaveProtocol( 11)
Deltalogic NetLink-PRO TCP/MPI-Adapter
Used in
TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveProtoPPI = TNoDaveProtocol( 4)
PPI-Protocol
Used in
TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveProtoS7Online = TNoDaveProtocol( 9)
use S7Onlinx.dll for transport via Siemens CP
Used in
TNoDave.Disconnect, TNoDave.DoConnect, TNoDave.ProtCode
unit interface daveSpeed1500k = TNoDaveSpeed( 4)
unit interface daveSpeed187k = TNoDaveSpeed( 2)
Used in
TNoDave.Create
unit interface daveSpeed19k = TNoDaveSpeed( 1)
unit interface daveSpeed45k = TNoDaveSpeed( 5)
unit interface daveSpeed500k = TNoDaveSpeed( 3)
unit interface daveSpeed93k = TNoDaveSpeed( 6)
unit interface daveSpeed9k = TNoDaveSpeed( 0)
unit interface daveSysFlags = TNoDaveArea( 1)
System flag area of 200 family
Used in
TNoDave.AreaCode
unit interface daveSysInfo = TNoDaveArea( 0)
System information of 200 family
Used in
TNoDave.AreaCode
unit interface daveTimer = TNoDaveArea( 12)
Timer
Used in
TNoDave.AreaCode
unit interface daveV = TNoDaveArea( 10)
unknown Area
Used in
TNoDave.AreaCode
unit interface EXTF = TSzlLed( 3)
unit interface FRCE = TSzlLed( 6)
unit interface IFM1F = TSzlLed( 18)
unit interface IFM2F = TSzlLed( 19)
unit interface INTF = TSzlLed( 2)
unit interface MSTR = TSzlLed( 14)
unit interface NONE = TSzlLed( 0)
unit interface RACK0 = TSzlLed( 15)
unit interface RACK1 = TSzlLed( 16)
unit interface RACK2 = TSzlLed( 17)
unit interface REDF = TSzlLed( 13)
unit interface RUN = TSzlLed( 4)
unit interface SF = TSzlLed( 1)
unit interface STOP = TSzlLed( 5)
unit interface USR = TSzlLed( 9)
unit interface USR1 = TSzlLed( 10)

Simple Types:

unit interface PSzlBGDiagInfo = ^TSzlBGDiagInfo
unit interface PSzlBGIdent = ^TSzlBGIdent
unit interface PSzlBGState = ^TSzlBGState
unit interface PSzlBlockType = TSzlBlockType
unit interface PSzlDiagMessage = ^TSzlDiagMessage
unit interface PSzlLedState = ^TSzlLedState
unit interface PSzlStationState = ^TSzlStationState
unit interface PSzlSystemMemory = ^TSzlSystemMemory
unit interface PSzlUserMemory = ^TSzlUserMemory
unit interface TNoDaveArea = ( daveSysInfo, daveSysFlags, daveAnaIn, daveAnaOut, daveInputs, daveOutputs, daveFlags, daveDB, daveDI, daveLocal, daveV, daveCounter, daveTimer, daveP)
The area of the PLC-Data for the TNoDave-Component.
unit interface TNoDaveComSpeed = ( daveComSpeed9_6k, daveComSpeed19_2k, daveComSpeed38_4k, daveComSpeed57_6k, daveComSpeed115_2k)
The speed of the COM-Port for the TNoDave-Component.
unit interface TNoDaveDebugOption = ( daveDebugRawRead, daveDebugSpecialChars, daveDebugRawWrite, daveDebugListReachables, daveDebugInitAdapter, daveDebugConnect, daveDebugPacket, daveDebugByte, daveDebugCompare, daveDebugExchange, daveDebugPDU, daveDebugUpload, daveDebugMPI, daveDebugPrintErrors, daveDebugPassive)
The debug-options for the libnodave.dll
unit interface TNoDaveDebugOptions = set of TNoDaveDebugOption
unit interface TNoDaveOnErrorEvent = procedure (Sender: TComponent; ErrorMsg: String) of object
This is the type of the Event-Handler for the OnError-Event of the TNoDave component.
Parameters
Sender
The TNoDave-instance which is the source of the event.
ErrorMsg
A clear text message describing the error.
unit interface TNoDaveProtocol = ( daveProtoMPI, daveProtoMPI2, daveProtoMPI3, daveProtoMPI4, daveProtoPPI, daveProtoISOTCP, daveProtoISOTCP243, daveProtoIBH, daveProtoIBH_PPI, daveProtoS7Online, daveProtoAS511, daveProtoNLPro)
The type of the communication-protocol for the TNoDave-Component.
unit interface TNoDaveReachablePartnersMPI = array [ 0 .. 126] of Boolean
List of reachable Partners in the MPI-Network, True = Station is available at this address.
unit interface TNoDaveSpeed = ( daveSpeed9k, daveSpeed19k, daveSpeed187k, daveSpeed500k, daveSpeed1500k, daveSpeed45k, daveSpeed93k)
The speed of the MPI-protocol for the TNoDave-Component.
unit interface TSzlLed = ( NONE, SF, INTF, EXTF, RUN, STOP, FRCE, CRST, BAF, USR, USR1, BUS1F, BUS2F, REDF, MSTR, RACK0, RACK1, RACK2, IFM1F, IFM2F)

Functions:

unit interface procedure Register
Installation of TNoDave in the component palette