Skip to main content

ProjectInfo.json

在 CODESYS 4,项目信息存储在 UTF-8 编码中 ProjectInfo.json 文件。对于设备项目,文件位于目录中 *.fbsdev。对于库项目,该文件夹位于目录中 *.fbslib。

最重要的项目信息位于文件的顶层。其余密钥位于可动态扩展的对象 customProperties 字典。

例 48. a 的示例 ProjectInfo.json 文件

{  
    "title": "C4 Test Compiled Library",  
    "version": "1.0.0-alpha3+build-42",  
    "author": "Team CBE",  "company": 
    "CODESYS Development GmbH",  
    "description": "Test library for compiled library creation",  
    "defaultNamespace": "C4CompiledTestLib",  
    "placeholder": "C4CompiledTestLib",
    "categories": ["System|SysLibs", "Docs|Fieldbus|Modbus", "Use Cases", 
    "customProperties": {    
        "DocFormat": "reStructuredText", 
        "SomeTime": {"type": "DateTime", "value": "2024-12-24T15:24:12" }
  }
}


中定义的密钥 ProjectInfo.json 文件

大多数密钥与中的项目信息完全对应 CODESYS 3,但使用了修改后的命名规范。

表 19.

钥匙

类型

描述

title

string

项目标题

图书馆必备

version

string

该项目的版本

图书馆必备

company

string

该项目的制造商

图书馆必备

author

string

该项目的作者

description

string

项目描述

defaultNamespace

string

库的标准命名空间。建议为普通库设置此属性。

对于设备项目来说微不足道

released

bool

true: 该库已发布。

placeholder

string

用于解析库的占位符

有关更多信息,请参阅以下内容: 常用库

autoResolveUnbound

bool

true:要求自动解析占位符。

推荐用于占位符无法被其他来源(例如设备描述)解析的 “独立” 库。

isContainerLibrary

bool

true: 该库是一个容器库。

有关更多信息,请参阅以下内容: 容器库

isInterfaceLibrary

bool

true: 该库是一个接口库。

有关更多信息,请参阅以下内容: 接口库

isCommonLibraryContainer

bool

true: 该库是一个容器库,必须通过占位符进行解析。

有关更多信息,请参阅以下内容: 常用库

languageModelAttribute

string

应设置为 qualified-access-only 让新库通过命名空间前缀强制进行限定访问

generateProjectInfoFunctions

bool

控制函数的生成,这些函数可用于以编程方式访问应用程序中的项目属性

注意:此密钥目前是 不是 仍在评估中 CODESYS 4。

generateLibraryInfoFunctions

bool

控制函数的生成,这些函数用于以编程方式访问应用程序中的库属性

注意:此密钥目前尚未在中进行评估 CODESYS 4。

categories

string[]

定义项目类别成员资格的字符串列表

customProperties

object{}

未严格预定义的属性

如 CODESYS 3,中的属性列表 CODESYS 4 可以由用户动态扩展。但是,只有以下数据类型可用于此目的:

默认类型 string, number,以及 boolean 直接写成相应的 JSON 文字。对于这些类型 Version 和 DateTime,需要通过类型字段提供 ID 才能将它们与普通字符串区分开。这就是为什么它们被写成 JSON 对象,成员为”type“和”value“,例如:

"SomeVersion": {"type": "Version", "value": "1.2.3.4" },

"SomeTime": {"type": "DateTime", "value": "2024-12-24T15:24:12" },

v3Meta

object{}

与之无关的元数据 CODESYS 4,存储于 CODESYS 3 采用基于文件的存储格式

它仅在基于文件的存储时才有意义 CODESYS 3 项目应在中打开 CODESYS 4。在不损失功能的情况下可以忽略的数据将被忽略。剩余的数据将在中生成错误消息 CODESYS 4。插件特定的数据由接口评估。任何插件都无法识别的所有属性都将生成错误。



图书馆类别

库类别用于按层次对库进行分组。一个库可以属于一个或多个类别,也可以根本不属于任何类别。类别本身是按层次结构的

库类别存储为 categories 列出在 ProjectInfo.json。

  • 该清单不一定存在。

  • 该列表可以包含任意数量的类别。

  • 类别分层级别的标识符均由竖线字符分隔 (|)。

  • 类别标识符不能为空或仅由空格组成。

  • 不包括 Unicode 类别 “控制字符”(U+0000-U+001F、U+007F-U+009F)、“行分隔符”(U+2028)和 “段落分隔符”(U+2029)中的字符。

有效类别的示例: ["System|SysLibs", "Docs|Fieldbus|Sercos", "Use Cases"]

无效类别的示例:  ["", "A||B", "A|  |B", "A\r\nB"]