UNPKG

codesys-client

Version:

Node.js Codesys client for reading and writing PLC data using network variable lists (NVL)

93 lines (92 loc) 2.45 kB
/// <reference types="node" /> import { IecType } from "iec-61131-3/dist/types/types"; export interface ReceiverSettings { /** * UDP port to listen for incoming data * Default is 1202 */ ListeningPort?: number; /** * IP address of the network interface to use for listening * Default: 127.0.0.1 */ LocalAddress?: string; } /** * A packet containing data for a list */ export interface Packet { /** * Packet header */ header: PacketHeader; /** * Packet payload */ payload: PacketData; /** * Raw data of the whole packet */ rawData: Buffer; } /** * Received packet header */ export interface PacketHeader { /** Raw header data */ rawData: Buffer; /** Codesys header identity */ identity: Buffer; /** Message type (0 = network variable) */ type: number; /** Index - Network variable list ID (Listidentifier at PLC) */ index: number; /** SubIndex - If multiple packets -> number of the packet */ subIndex: number; /** Variable count - how many variables */ variableCount: number; /** Byte length of the whole packet inc. header */ packetLength: number; /** Increasing counter value*/ counter: number; /** Flags */ flags: number; /** Flags as string array */ flagsStr: string[]; /** Checksum of the variable definiton, changes only if variables added/removed (if sent, otherwise 0) */ checksum: number; /** Length of the data payload (calculated by ourselves)*/ payloadLength: number; } export interface PacketData { rawData: Buffer; parsed: Record<string, unknown>; } export interface PacketBufferEntry { handled: boolean; counter: number; packets: Packet[]; totalDataBytes: number; } export interface Listener { listID: number; dataType: IecType; callback: (data: unknown, listener: Listener) => void; } export interface SenderSettings { /** * Target IP address / broadcast address to send data to * Default is 255.255.255.255 (broadcast) */ targetAddress?: string; /** * UDP port to send outgoing data * Default is 1202 */ targetPort?: number; /** * Time delay (milliseconds) between packets sent * Default is 5 ms */ delayBetweenPackets?: number; }