示例:使用 VisuTrendStorageAccess 图书馆
产品: CODESYS Visualization
这 TrendStorage API Example.project
示例项目使用可视化来展示如何使用 VisuTrendStorageAccess 读取趋势数据的库作品。
有关趋势元素的更多信息,请参阅: 可视化元素:趋势
描述
在本例中,趋势数据由趋势记录管理器保存,然后由趋势记录管理器读取。 VisuTrendStorageAccess
API使用ST代码。这允许检索历史数据。此外,还可以导出趋势数据。
中定义了四项任务 TrendStorage API Example.project
示例项目。
标准任务调用
PLC_PRG
程序以模拟数据。模拟数据被保存在数据库中
TrendRecordingTask
任务和“趋势记录管理器”组件。这
VISU_TASK
任务负责刷新可视化。趋势数据的实际读取是在
Task200ms
任务,即TrendStorageAPI_TestProg
计划,以及TrendStorageReader
功能块。
这 ITrendStorageWriterListener
接口用于新数据的主动通知。
为此, TrendStorageWriterListener
功能块实现了 ITrendStorageWriterListener
接口并注册为 TrendStorageReader
功能块。当保存新数据时, DataWritten
使用开始和结束时间戳以及保存的记录数调用方法。
这 TrendStorageReader
功能块和 Read
方法用于读取记录。
eError2 := instTrendStorageReader.Read(liTimstampFrom := liTimstampFrom2, liTimstampTo := liTimstampTo2,itfTrendStorageReaderConsumer := instTrendStorageReaderConsumer);
这 TimeStampRead
和 ValueRead
的方法 instTrendStorageReaderConsumer
然后为每个值自动调用。
在示例中, TrendStorageReaderConsumer
功能块实现了 ITrendStorageReaderConsumer
接口并将值以 CSV 格式写入控制器控制台。如果返回数据的大小会阻塞数据库太长时间,那么 ETrendStorageReaderErrors.AdditionalReadCallRequired
作为错误代码返回。稍后必须通过调用 ContinueReading
具有相同参数的方法。
附加信息
可视化描述
模拟信号显示在可视化上部的趋势元素中。
趋势数据的最小和最大时间戳显示在 “最小/最大次数” 标签。
当前值
DataWritten
方法显示在 “新数据”。
这些值是在 “读取值” 标签。
开始时间戳显示在上部字段中,结束时间戳显示在下部字段中。
这 “计算时间戳” 按钮将指定的数据转换为对应的时间戳(反转功能: “计算日期/时间”)。然后可以通过单击开始读取操作 《读取趋势存储》 按钮。点击 “停止阅读” 将取消读取操作。当。。。的时候 “详细输出” 按钮处于活动状态,可以在设备的记录页面上查看数据。 (做 不是 开始 CODESYS Control Win 通过 SysTray。)否则,记录数将显示在 “计算行数” 场地。
系统要求和限制
编程系统 | CODESYS Development System (版本 3.5.14.0 或更高版本) |
运行系统 | CODESYS Control Win (版本 3.5.14.0) |
附加组件 | - |
注意
下载 项目