RTX64 控制面板提供了多个用于配置网络行为和性能的选项。可以从RTX64 4.0 及更高版本中的配置和控制网络(Configure and control the network)页面中访问这些配置选项。
在 RTX64 控制面板中打开此页面
在 RTX64 控制面板中打开配置和控制网络页面:
- 在 Windows 开始菜单中,导航至 RTX64 4.x Runtime,单击 RTX64 Control Panel;
- 单击 Configure and control the network
关于实时网络
RTX64 实时网络由两个主要组件组成:
- 网络抽象层 (NAL):从上层协议栈中抽象出网络硬件和驱动程序功能的网络层,并为上层提供管理接口,用于查询和使用可用的网络资源。NAL 是独立于 TCP/IP 栈的协议层。使用 NAL,可以更高效的使用 EtherCAT,TSN(时间敏感网络)和 PTP(精确时间协议)等网络功能。更多信息,请参阅 RTX64 网络抽象层 (NAL)。
- TCP/IP 栈:位于 NAL 之上的独立可购买协议堆栈,提供确定性处理和网络功能。详细信息,请参阅实时 TCP/IP 栈(Real-Time TCP/IP Stack)。
注意:如果未激活 TCP/IP 组件,则 TCP/IP 选项不可用。有关激活 RTX64 组件的信息,请参阅 激活 RTX64(RTX64 Activation)。
以 Verbose 模式运行实时网络
RTX64 实时网络提供 Verbose 运行模式,可以在(实时网络)启动/关闭和运行期间的关键时间点,提供详细的状态信息。这些信息可能会影响一些性能,但可以协助追踪开发和调试时出现的问题。
开启实时网络的 VERBOSE 模式:
- 点击以 verbose 模式运行(Run in verbose mode) 复选框启用 Verbose 日志记录;取消选中则禁用 Verbose 记录模式;
注意:在 Verbose 模式下运行可能会影响系统关闭期间的网络性能。
- 重新启动 NAL 以使更改生效。如果您正在更改其他需要重新启动网络的设置选项,请先进行这些更改,然后再重新启动 NAL。重新启动之前,您必须停止所有启用网络的进程。
配置和控制网络抽象层 (NAL)
手动启动和停止 NAL
使用启动/停止控件手动启动(Start),停止(Stop)或重启(Restart) NAL。NAL 的运行状态以文字方式显示在控件的左侧。下图表示 NAL 正在运行
注意:TCP/IP 协议栈依赖于 NAL。停止 NAL 也会停止TCP/IP 栈。
控制 NAL 启动方式
随子系统启动(Start with the Subsystem) 复选框的状态,决定了子系统启动时,NAL 是否自动启动。
NAL 随子系统启动而启动:
选中随子系统启动(Start with the Subsystem)复选框,子系统启动时,NAL 将会同时启动。这是系统的默认设置。
NAL 独立于子系统启动:
取消选中随子系统启动(Start with the Subsystem)复选框,NAL 将不随子系统启动。
NAL 配置和设置选项
设置 | 描述 | 操作 |
---|---|---|
Set the processor on which the NAL runs 设置 NAL 运行的处理器 | 指定 NAL 运行的处理器核心编号 注意:处理器编号从0开始。 默认情况下,第一个 RTSS 处理器是最理想的选择。 | 从下拉列表中选择处理器编号 |
注意:必须重启网络才能使更改生效。如果您正在更改其他需要重新启动网络的设置选项,请先进行这些更改,然后再重新启动 NAL。重新启动之前,您必须停止所有启用网络的进程。
配置和控制 TCP/IP 协议栈
注意:本设置需要有效的 TCP/IP 协议栈许可证。
手动启动和停止 TCP/IP 协议栈
使用启动/停止控件手动启动(Start),停止(Stop)或重启(Restart) TCP/IP 协议栈。其运行状态以文字方式显示在控件的左侧。下图表示TCP/IP 协议栈已经停止
控制 TCP/IP 协议栈启动行为
随 NAL启动(Start with the NAL) 复选框的状态,决定了 NAL 启动时,TCP/IP 协议栈是否随之启动。
TCP/IP 协议栈随 NAL 启动而启动:
当 NAL 配置为随子系统启动时(见上文),选中随 NAL启动(Start with the NAL) 复选框,则TCP/IP 协议栈将随 NAL 启动而启动。这是系统默认设置。
TCP/IP 协议栈独立于 NAL 启动:
取消选中随 NAL启动(Start with the NAL) 复选框,TCP/IP 协议栈将不随 NAL 启动。注意,NAL 必须先运行,然后才能启动 TCP/IP。
TCP/IP 协议栈配置和设置选项
设置 | 描述 | 操作 |
---|---|---|
Set the processor on which the Stack runs 设置TCP/IP 协议栈运行的处理器 | 指定 TCP/IP 协议栈运行的处理器编号 注意:处理器编号从0开始。 默认情况下,第一个 RTSS 处理器是最理想的选择。 | 从下拉列表中选择处理器编号 |
Set the Stack timer processor 设置TCP/IP 协议栈定时器处理器 | TCP/IP 协议栈定时器的处理器编号 注意:处理器编号从0开始。 默认情况下,第一个 RTSS 处理器是最理想的选择。 | 从下拉列表中选择处理器编号 |
Set the Stack timer priority 设置TCP/IP 协议栈定时器优先级 | 设置 RT-TCP/IP 协议栈第一个实时计时器线程的优先级,该线程更新计时器变量。 | 在文本框中输入一个值; 该值必须在 1-127 范围内,其中 1 是最低优先级,127 是最高优先级。默认优先级为 66。 |
Set the Stack timer execute priority 设置TCP/IP 协议栈定时器执行优先级 | 设置 RT-TCP/IP 协议栈第二个实时定时器线程的优先级,该线程执行过期定时器函数。 | 在文本框中输入一个值; 该值必须在 1-127 范围内,其中 1 是最低优先级,127 是最高优先级。 该值必须小于或等于TCP/IP 协议栈定时器优先级设置的值。默认优先级为 60。 |
Set the Stack timer interval 设置TCP/IP 协议栈定时器间隔 | TCP/IP 协议栈定时器是一个内部定时器,用于所有内部同步。RT-TCP/IP 栈需要获取其内部使用的每个栈定时器间隔的固定时间值,以更新其消耗的时间总计数。由于栈内实现了多种协议,因此分别处理各个定时器非常不便。 因此,RT-TCP/IP 栈经过优化,使用单个通知来获取消耗的总时间。栈定时器系统管理着 RT-TCP/IP 栈中使用着的所有不同定时器。 注意:将栈定时器间隔设置为较低的值,会导致间隔很小的中断,这会对系统性能产生不利影响。 注意:该值必须是 HAL timer period 的倍数。 | 在文本框中输入正整数值(以毫秒为单位)。 输入的值必须在 1 到 1000 毫秒范围内。默认值为 100 毫秒。 |
Set the IP reassembly timeout 设置 IP 重组超时 | IP 重组超时间隔。 注意:建议您降低 IP 重组超时值,使其小于 IP ID 字段中的回环时间。 | 在文本框中输入正整数值。 默认值为 60。最大值为 120。 |
Set the minimum number of ARP entries 设置 ARP 条目数的最小值 | TCP/IP 栈允许的 ARP 条目数的最大值。每个 ARP 缓存条目为 100 字节。强烈建议ARP 缓存条目数最大值大于接口通信的设备总数。 注意:如果该值太小,ARP 缓存可能会溢出。 当大多数网络设备离线时,溢出的可能性就会增加。 注意:如果发生溢出,TCP/IP 栈会显示警告消息 tfRtClone:ARP 缓存已满。这表示支持的最大条目数应继续增加。 | 在文本框中输入一个值。默认值为 256。 |
Set the maximum number of sockets 设置 sockets 数量的最大值 | TCP/IP 栈在创建 socket 时,需要实际分配 socket内存,因此,必须知道要创建的 sockets 的最大数量。 | 在文本框中输入一个值。指定的值必须在 1 到 1024 范围内。默认值为 64。 注意:在运行的系统中,sockets 的范围是 0 到 sockets 数量的最大值。例如,如果sockets 数量的最大值设置为 64,则范围为 0 到 63。 |
Set the maximum concurrency 设置最大并发数 | TCP/IP 栈中允许同时运行的线程数,范围是 0 到 10340。 TCP/IP 栈需要在启动时初始化某些属性,以允许一定数量的线程运行,并为每个向 TCP/IP 栈请求服务的客户端提供服务。 例如,运行客户端和服务器应用程序各需要 1 个并发。TCP/IP 栈自身需要 1 个并发才能运行 Loopback 服务。加载和管理接口平均需要3个线程,因此每个接口的并发数为3。 注意:建议自动计算该值(默认)。 注意:如果 TCP/IP 栈需要的线程多于初始化过程中准备的数量,栈将崩溃。 | 单击与所需行为相对应的单选按钮: ● 自动计算(Calculate automatically):默认。基于 TCP/IP 栈管理的接口数量,准备多余预期值资源。 ● 自定义(Custom):自定义 。输入一个自定义值,或使用初始值(历史记录中的最后一次设置)。自定义值是预期运行的线程数,从而优化这些线程的资源。 如果在信号量初始化期间该值不为零,则信号量将按如下方式计算。 系统计算最小值,然后使用以下值中的较大者: o (MinValCalculation + 16(Constant for Min SemaphoreValue)) o 用户设置的值 如果用户设置的值较低,并且启用了Verbose模式,则会生成以下消息: The number of semaphores given by the current configuration (%d) is too low and should be increased. Initializing %d semaphores instead\n 当前配置 (%d) 给出的信号量数量太少,应增加。改为初始化 %d 个信号量\n 注意:增加此数值可能需要更改 sockets 最大数值。 Historical Maximum 表示历史最大栈信号量使用情况。当显示 No historical data 时,表示没有足够的信息来计算最大值。 |
Manage memory usage 管理内存使用情况 | 打开更改内存分配页面,您可以在这里指定分配给 TCP/IP 栈的内存量。 |
注意:必须重新启动 TCP/IP 协议栈才能使所做的更改生效。如果您正在更改其他需要重新启动网络的设置选项,请先进行这些更改,然后再重新启动 TCP/IP。