CODESYS Virtual Safe Time Provider
这CODESYS Virtual Safe Time Provider是一个标准接口,用户可以使用它将第二个外部时间基准传输到CODESYS Virtual Safe Control。
该实现是作为客户端完成的,它必须在另一个具有独立时间基准的系统上运行。
安装
这CODESYS Virtual Safe Time Provider SL 是通过CODESYS Control SL Deploy Tool更多信息请参见:“安全屋” 场景:vPLC + vSafe + ProfiSafe + 时间提供商 + 许可证服务器。
重要
这CODESYS Virtual Safe Time Provider SL 不能与CODESYS Virtual Safe Control SL。
功能
这Time Provider作为CODESYS Virtual Safe Control SL 并以定义的时间间隔通过网络将时间戳作为消息发送。
然后,该消息可以被各种接收器接收和评估(CODESYS Virtual Safe Control l SL,冗余Time Provider)。
这CODESYS Virtual Safe Control SL 以定义的周期时间运行应用程序,其中来自外部计时器的至少一个时间戳必须到达。
重要
发送间隔Time Provider应配置为小于应用程序周期时间的一半。

为了提高由于网络或调度问题导致的稳定性Time Provider因此CODESYS Virtual Safe Control SL,Time Provider可以冗余执行。
有两种类型可区分。
Time Provider冗余
如果是Time Provider冗余,两个Time Provider实例运行在两个独立的主机上。一个实例充当主动发送方,另一个实例被动监视时间戳的发送。
一旦主动实例的时间戳发送出现延迟或未发生,被动实例将立即接管发送,并使用主动实例的最后一个已知偏移量。这意味着CODESYS Virtual Safe Control SL. 两个实例必须运行在同一个网络。只有这样,被动实例才能监控主动实例发送的消息。

重要
如果一个活跃Time Provider在网络中检测到总线上的另一个活动实例,则具有最高优先级 IP 地址的实例保持活动状态,而所有其他实例进入被动模式。
网络冗余
在网络冗余的情况下,Time Provider每个实例都使用自己的网络,而Time Provider冗余。尽管如此,对于被动Time Provider实例从活动实例接收消息,以便在发生延迟或故障时接管发送。

重要
网络冗余尚未实现。
配置
选项 | 描述 | 默认值 |
---|---|---|
| 目标 IP 地址 | 127.0.0.1(本地主机) |
| 目标端口 | 60000 |
| 发送间隔Time Provider时间戳(单位:毫秒) | 3 |
| SCHED_FIFO 调度优先级 | 55 |
| CPU 固定 所有线程都固定到定义的 CPU,从值 0 开始。 | 0 |
| 冗余模式 | 已禁用 |
| 记录 | 已禁用 |
| 诊断间隔(秒) | 60 |
重要
IP 地址的默认值为 127.0.0.1(localhost)。此值仅用于调试和测试。Time Provider提供独立的时基,因此不能在本地操作。如果使用默认值,则Time Provider发出警告。
诊断
评估页面上的时间戳时可能发生的错误CODESYS Virtual Safe Control SL:
配置的端口已被使用。
如果配置的端口已被使用且无法打开,则会发出以下消息:
Could not open port <Port number> it is already in use!
活动实例中的时间戳发送延迟或未发生。
如果主动发送者的时间戳被延迟或未发送,并且被动Time Provider实例接管发送,则发出以下诊断消息:
Started sending: take over from higher priority time provider <priority>
当优先级较高的Time Provider实例再次可用并接管前一个被动实例的发送,发出以下消息:
Stopped sending: higher priority time provider is active: <priority>
时间戳的循环统计(活动实例/发送者)
发送的时间戳的统计信息按配置的间隔发出(
-stat_print_time
选项)以微秒 [us] 为精度。将发出最小和最大发送间隔,以及配置时间段内的平均值:Statistics: min: <minimum sending interval>, max: <maximum sending interval>, avg: <average sending interval> - send time interval
时间戳的循环统计(被动实例/接收者)
由于被动实例接收主动实例发送的时间戳,因此可以评估接收到的信息以用于诊断目的。
统计数据按配置的时间间隔发布(
-stat_print_time
选项)以微秒[us]和百分比[%]为精度。会输出最小和最大间隔,以及配置时间段内的平均值:Statistics: min: <minimum deviation>, max: <maximum deviation>, avg: <average deviation> - remote to sample time deviation
Statistics: min: <minimum sample interval>, max: <maximum sample interval>, avg: <average sample interval> - sample time interval
Statistics: min: <minimum remote interval>, max: <maximum remote interval>, avg: <average remote interval> - remote time interval
丢失消息计数器
如果活动实例未发送时间戳,则计数器递增并输出:
Statistics: lost messages: <number of lost messages>