Devices Channels (Reference) encapsulate protocol configurations and settings, providing communication pathways between the HMI and field devices through various network interfaces.
Device Channels provide:
Each channel represents a configured communication path using a specific protocol to connect with PLCs or field devices.
Table of Contents maxLevel 2 minLevel 2 indent 10px exclude Steps style none
Property | Description | Options |
---|---|---|
Protocol Options | Protocol-specific settings | Varies by protocol |
Interface | Communication type | Serial, Multi Serial, TCP/IP |
InitialState | Startup behavior | Enabled, Disabled, Remote, Reserved |
Timeout | Response timeout | Default: protocol-specific |
RemoteSettings | Remote execution configuration | IP:Port format |
DriverVersion | Current driver version | Read-only |
Serial
Multi Serial
TCP/IP
Setting | Description | Default |
---|---|---|
Listening Port | TCP port for slave connections | 502 (Modbus) |
Node Connection | Parallel requests per node | 1 |
Max Simultaneous | Concurrent connections limit | 10 |
Share Node Same IP | Multiple slaves on single IP | False |
Use Single Thread | Single thread for same IP | False |
Use Ping Check | Verify connection before send | False |
Accept Unsolicited | Allow unsolicited messages | False |
State | Description | Use Case |
---|---|---|
Enabled | Active at startup | Normal operation |
Disabled | Loaded but inactive | Maintenance mode |
Remote | Runs on remote computer | Distributed architecture |
Reserved | Not loaded | Temporarily excluded |
Execute Device Module on remote computers for gateway and tunneling applications.
Primary IP: 192.168.1.100:3100
Backup IP: 192.168.1.101:3100
Enable in firewall (Inbound/Outbound):
Note |
---|
Protocol drivers with specific permissions (PI, Tundra, Prediktor) must be executed by Windows Users. TWebServices or IIS must run under the same Windows User account. |
csharp
// Stop channel
@Device.Channel.ChannelName.Stop();
// Start channel
@Device.Channel.ChannelName.Start();
// Stop with timeout
@Device.Channel.ChannelName.Stop(10);
csharp
public class ChannelControl
{
public void RestartChannel(string channelName)
{
// Stop channel
@Device.Channel[channelName].Stop(5);
// Wait for stop
Thread.Sleep(1000);
// Start channel
@Device.Channel[channelName].Start();
}
}
Protocol: Modbus
Interface: TCP/IP
Port: 502
Node Connection: 1
Timeout: 1000ms
Protocol: Modbus RTU
Interface: Serial
Baud: 19200
Data Bits: 8
Parity: Even
Stop Bits: 1
Protocol: OPC UA
Interface: TCP/IP
Port: 4840
Security: Basic256
Max Connections: 5
Channel won't start:
Communication timeouts:
Connection failures:
Remote channel issues:
csharp
// Get channel status
bool isConnected = @Device.Channel.ChannelName.IsConnected;
// Check last error
string error = @Device.Channel.ChannelName.LastError;
// Get statistics
int successCount = @Device.Channel.ChannelName.SuccessCount;
int errorCount = @Device.Channel.ChannelName.ErrorCount;
Page Tree | ||
---|---|---|
|
The software platform establishes Channels to manage communication using protocols. A DeviceChannel object encapsulates a selected Protocol and its configuration settings. The Channel is the next step of the Device Module configuration, mapping the stations of PLCs or devices in a field network, and allowing the selection of the protocol settings that will be used with each device.
On this page:
Table of Contents maxLevel 3 style none
Device Channels are the pathways for communication between the HMI and the devices in the system. The sections below describe how to create and edit Device Channels on the platform in more detail.
To create a new channel, follow these steps:
To configure or edit an existing channel, follow these steps
The following table describes each available property you can configure when editing a channel:
Field
Description
Protocol Options
Defines the options for this protocol. The options depend on the selected protocol. Check each protocol documentation to guide you.
Interface
Defines the interface type for this channel.
Serial: Use this option to configure the serial parameters for RS232/485 networks.
Multi Serial: Use this for configurations with multiple RS-232 ports.
TCPIP: Use for Ethernet or wireless networks.
Settings
Defines the settings for this channel. The available values will depend on the interface the channel is using.
For a serial interface, typically keep the defaults.
For a Multi Serial interface, enter the number of RS-232 ports to use in the Ports field.
Node Connection: The number of parallel requests sent to each node (asynchronous communication).
Accept Unsolicited: Allow to accept unsolicited input from the slave.
Listening Port: The TCP port where the slave device is connected (default is 502).
Node Connection: The number of parallel requests sent to each node (asynchronous communication).
Max Simultaneous Connections: The maximum number of concurrent connections.
Share Node Same IP: Several slaves are connected to a single IP address. For example, RS485/Ethernet Converters.
Use Single Thread: Use a single thread for the same IP nodes.
Use Ping To Check Connection: Check for connection before sending a packet.
Info |
---|
The settings here must match the settings on the slave device. |
Timeout
Defines the timeout options for this channel. Typically, keep the default value.
InitialState
Defines the initial state for this channel, the states can be as follows:
Enabled: The channel is loaded and execution starts when the project starts.
Disabled: The channel is loaded, but does not starts execution going the disabled state.
Remote: The channel is local in a remote Computer defined that the Remote Settings. See Remote Channels page.
Reserved: The channel is not loaded, it acts as the channel was temporarily deleted from the project.
RemoteSettings
Defines the primary IP and backup IP to configure the remote computer where this channel will run.
DriverVersion
Defines the version of the current driver being used.
After creating a solution, you may face issues that compromise the communication with the field device. In such moments, instead of restarting the entire system, you may solve the problem by restarting the channel. You can perform such tasks using scripts, avoiding shutting down the entire system. To do so, follow these steps:
Create a new class using the C# code below, where "XXXX" refers to the name of the channel.
Code Block | ||
---|---|---|
| ||
@Device.Channel.XXXX.Stop()
@Device.Channel.XXXX.Start() |
You can create a Task or Expression to call this class when needed and do it in other ways that don't use the class.
See the Remote Channels page for more information.
Code Block | ||
---|---|---|
| ||
public void Stop()
{
@Device.Channel.ControlLogix.Stop(10);
} |
In this section: