Demo3D.PLC.Comms Namespace |
| Class | Description | |
|---|---|---|
| AccessParameters |
Parameters for accessing a PLC tag or memory address.
| |
| AccessRightsExtensions |
Extension methods for AccessRights.
| |
| AddressAreaExtensions |
A class containing AddressArea extensions.
| |
| AddressExtensions |
A class containing extension methods for IAddress.
| |
| AddressTranslatorServiceExtensions |
A class containing extension methods for IAddressTranslatorService.
| |
| Alignment |
Directs field memory layout / alignment.
| |
| AlignmentPacked |
A class to help with sequential field memory layout / alignment.
Aligns bits on bit boundaries, and all else on byte boundaries.
| |
| AlignmentSequential |
A class to help with sequential field memory layout / alignment.
| |
| AlignmentSequential16 |
A class to help with sequential field memory layout / alignment.
Aligns bits and bytes on their respective boundaries, and larger types on 16-bit boundaries.
| |
| AlignmentSequential32 |
A class to help with sequential field memory layout / alignment.
Aligns bits, bytes, and Int16 on their respective boundaries, and larger types on 32-bit boundaries.
| |
| AlignmentSequential64 |
A class to help with sequential field memory layout / alignment.
Aligns bits, bytes, Int16 and Int32 on their respective boundaries, and larger types on 64-bit boundaries.
| |
| BrowseFlagsExtension |
Extension methods for BrowseFlags.
| |
| BrowseItemBase |
Base implmentation of IBrowseItem.
| |
| BrowseItemBranch |
A base class for implementing a symbol table branch.
| |
| BrowseItemExtensions |
Extension methods for IBrowseItem.
| |
| BufferDataConverter |
A DataConverter for converting .Net objects to/from an array of bytes.
| |
| BufferDataConverterContext |
Used by BufferDataConverter, this class provides the context of a conversion.
| |
| BufferDataConverterContextProvider |
Used by BufferDataConverter, this class provides the context of a conversion, and is its own context provider.
| |
| ConnectionPointContainerExtensions |
IConnectionPointContainer extensions.
| |
| ConversionFunction |
A conversion function returned from GetConvertFrom(IDataContextProvider, DataType, DataType)
or GetConvertTo(IDataContextProvider, DataType, DataType).
| |
| DataArrayT |
A data array.
| |
| DataContextProvider |
Provides extensions to IDataContextProvider.
| |
| DataConverter |
Provides a unified way of converting types of values to other types.
| |
| DataConverterAttribute |
Specifies what type to use as a converter for the object this attribute is bound to.
| |
| DataStruct |
A dynamic data structure.
| |
| DataType |
Describes a data type, either a .Net System.Type or dynamic type that may have no .Net Type equivalent.
| |
| DataTypeBuilder |
Dynamic structure builder.
| |
| DataTypeFieldItem |
A field definition for the dynamic structure builder (see DataTypeBuilder).
| |
| DataTypeMemoryLayout |
Returns the field offset and size for fields of a structure.
(Describes just one element for an array type.)
| |
| FieldDescriptor |
One field of a structure.
| |
| FieldOffsetBitsAttribute |
Specifies the offset into a structure of a field (in bits).
| |
| FieldSizeBitsAttribute |
Specifies the size of a field (in bits).
| |
| IOStages |
Standard pathway stages for IO services.
| |
| MemoryAddress |
A memory address.
| |
| MemoryAddressMemoryAddressConverterAddressType |
A base data type converter.
| |
| MemorySymbolTableAddressType |
A class for constructing symbol tables for servers that are primarily accessed with memory addresses.
| |
| MessageContextBase |
Optional information about a request received.
| |
| MetaProperties |
Non-standard properties.
| |
| MetaPropertyDatabase |
Database of non-standard properties.
| |
| MetaPropertyDescriptor |
Description of a non-standard property.
| |
| NotifyDataChangedService |
Hard coded default scan rates for services that support the INotifyDataChanged interface.
| |
| NotifyIOStages |
Standard pathway stages for IO services that notify data changes.
| |
| PlcFlagsExtensions |
Extension methods for PlcFlags.
| |
| SequentialVectoredReadT |
A helper class for implementing ReadV.
| |
| SequentialVectoredWriteT |
A helper class for implementing WriteV.
| |
| StringAddress |
An address that supports a string representation.
| |
| TypedMemoryAddress |
A strongly typed PLC specific memory address.
| |
| VectoredRequest |
A vectored request.
| |
| VectoredRequestExtensions |
VectoredRequest extension methods.
| |
| VectoredRequests |
A vector of requests which can be executed multiple times.
|
| Structure | Description | |
|---|---|---|
| AddressArea |
Describes an addressable area within an address space.
| |
| DataDimension |
One dimension of an array.
| |
| DataValue |
A data value.
|
| Interface | Description | |
|---|---|---|
| IAddress |
An address of some sort.
| |
| IAddressSpace |
Memory address space identifier.
| |
| IAddressTranslatorService | ||
| IBrowseItem |
A browsable item, usually representing a symbol in the PLC symbol table.
Can optionally also implement IBrowseItemDescription.
| |
| IBrowseItemDescription |
Extensions to the core IBrowseItem to provide more detail.
| |
| IConnectionClosed |
An event raised when the server connection closes.
| |
| IConnectionPoint |
A single connection point.
| |
| IConnectionPointContainer |
A custom object that contains connection points.
Add this as an aspect on a visual to make the visual appear in the loopback tag server.
| |
| IDataContextProvider |
Provides contextual information for a data conversion using DataConverter.
| |
| IIOStages |
Protocol service that provides IOStages.
| |
| IListExt |
Extensions to IList.
| |
| INotifySymbolTable |
Notifies when the symbol table changes.
| |
| IOffloadingService |
A protocol that implements this service agrees to offload write requests.
| |
| ISymbolTable |
An interface for providing access to a symbol table.
| |
| ISynchronizedIOService |
A service for controlling when IO occurs.
|
| Delegate | Description | |
|---|---|---|
| BufferDataConverterPacketMarshallerDelegate |
A delegate for marshalling packets.
| |
| BufferDataConverterPacketUnmarshallerDelegate |
A delegate for unmarshalling packets.
| |
| ConversionDelegate |
Conversion function.
| |
| IOAsyncDelegateT |
Delegate for IO with the peer.
| |
| IOErrorHandler |
First chance IO error handler.
| |
| IOEventHandler |
Delegate for indicating an IO event.
|
| Enumeration | Description | |
|---|---|---|
| AccessRights |
Whether a data item can be read or written.
| |
| BrowseFlags |
Browse control flags.
| |
| BrowseItemBaseSearchFlags |
Search control flags.
| |
| CanReadSymbolsFlags |
Flags describing whether and how to read the symbol table.
| |
| DataTypeConvertibleFlags |
Flags for specifying acceptable conversions.
| |
| IOControl |
Cache and IO control flags.
| |
| IOErrorResponse |
How to respond to an IO error received.
| |
| PlcFlags |
Flags specific to PLC connections.
|
Support for server connectivity is broadly split between Tag and Memory servers; reflecting the primary concepts that the server exposes for accessing its data.
Tag-based servers expose PLC data-points as explicit tags. They tend first to expose their symbol table detailing all the tags that the client can access, and then offer some API or protocol for the client to access tags. Examples include EtherNet/IP CIP Class 3, OPC (UA and DA), and BR Automation PVI.
See Demo3D.PLC.Comms.Builtin for an example implementation of a tag server.
Memory-based servers expose raw PLC memory, allowing the client (Demo3D) to read and write bytes of data direct to/from the memory in the PLC. Examples include Modbus, Siemens S7 Functions, and Beckhoff TwinCAT ADS. These servers may also expose a symbol table, where the symbols in the table are just a mapping from symbol name to memory address, and the underlying access is still directly to memory in the PLC.
See Demo3D.PLC.Comms.Builtin for an example implementation of a memory server.
List of services:
| Access | Interface | Description |
|---|---|---|
| Common | IAddressTranslatorService | A service for translating one address to another. |
| ISymbolTable | Provides access to a symbol table. | |
| INotifySymbolTable | Provides access to a symbol table, and notifies when the symbol table changes. | |
| ISynchronizedIOService | Controls when IO occurs. | |
| IOffloadingService | A protocol that agrees to offload write requests.. | |
| Direct Tag | IDirectTagAccessService | Simplified tag client interface. |
| INotifyDirectTagAccessService | Simplified tag client interface for a peer that will notify when tag values change. | |
| Tag | ITagService | Provides tag access to the peer. |
| IDirectTagService | Provides direct tag access to the peer, bypassing any caches. | |
| INotifyTagService | Provided cached access to tags in a peer that will notify when tag values change. | |
| Direct Memory | IDirectMemoryAccessService | Simplified memory client interface. |
| INotifyDirectMemoryAccessService | Simplified memory client interface to a peer that will notify when memory changes. | |
| Memory | IMemoryService | Provides access to memory in the peer. |
| Memory | IMemoryPartitioningService | Controls access to memory in the peer. |
| IDirectMemoryService | Provides direct access to memory in the peer, bypassing any caches. | |
| INotifyMemoryService | Provides access to the memory in a peer that will notify when the data at the address changes. |