没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
WINCC V8.0 C 脚本编程建议规范
2023 年 9 月 23 日
WINCC C 脚本编程约定
1 / 47
目录
摘要........................................................................................................................................................ 6
目的 6
总体原则........................................................................................................................................ 6
约定........................................................................................................................................ 6
例外........................................................................................................................................ 6
说明 7
规范术语:............................................................................................................................ 7
1 文件组织........................................................................................................................................ 8
1.1 调用 DLL ........................................................................................................................... 8
规则 1-1 第三方提供的 DLL 存放于 WINCC 安装目录的 bin 目录中 ........................... 8
2 命名约定........................................................................................................................................ 9
2.1 总体风格........................................................................................................................... 9
规则 2-1 标识符命名使用驼峰风格 .................................................................................. 9
2.2 文件命名........................................................................................................................... 9
2.2.1 C 脚本文件 ......................................................................................................... 9
规则 2-2 保存的文件名需要与项目/标准函数的名称一致。 ....................................... 9
2.2.2 头文件............................................................................................................... 10
建议 2-1 自定义头文件命名统一采用小写字符 ........................................................... 10
2.3 函数命名......................................................................................................................... 10
建议 2-2 函数的命名遵循阅读习惯 ................................................................................ 10
2.4 变量命名......................................................................................................................... 10
规则 2-3 全局变量应增加 'g_' 前缀 ........................................................................... 11
建议 2-3 局部变量应该简短,且能够表达相关含义 .................................................... 11
2.5 类型命名......................................................................................................................... 12
WINCC C 脚本编程约定
2 / 47
2.6 宏、常量、枚举命名..................................................................................................... 13
建议 2-4 避免函数式宏中的临时变量命名污染外部作用域 ........................................ 14
3 布局约定...................................................................................................................................... 15
3.1 行宽................................................................................................................................. 15
规则 3-1 行宽不超过 120 个字符 ................................................................................ 15
3.2 缩进................................................................................................................................. 15
规则 3-2 使用空格进行缩进,每次缩进 2 个空格 ....................................................... 15
3.3 大括号............................................................................................................................. 16
规则 3-3 使用 K&R 缩进风格 ........................................................................................ 16
3.4 空格与空行..................................................................................................................... 16
规则 3-4 水平空格应该突出关键字和重要信息,避免不必要的留白。 ................... 16
规则 3-5 合理安排空行,保持代码紧凑 ....................................................................... 18
3.5 编译预处理..................................................................................................................... 19
规则 3-6 编译预处理的"#"默认放在行首,嵌套编译预处理语句时,"#"可以进行
缩进...................................................................................................................................... 19
3.6 变量赋值......................................................................................................................... 20
规则 3-7 多个变量定义和赋值语句不允许写在一行 ................................................... 20
3.7 指针................................................................................................................................. 20
建议 3-1 指针类型"*"跟随变量名或者类型,不要两边都留有空格或都没有空格 20
3.8 初始化............................................................................................................................. 21
规则 3-8 初始化换行时要有缩进,或进行合理对齐 ................................................... 21
3.9 函数调用......................................................................................................................... 22
规则 3-9 函数调用参数列表换行时保持参数进行合理对齐 ....................................... 22
3.10 条件语句......................................................................................................................... 23
规则 3-10 条件语句必须要使用大括号 ......................................................................... 23
规则 3-11 禁止 if/else/else if 写在同一行 ........................................................ 23
3.11 循环................................................................................................................................. 23
WINCC C 脚本编程约定
3 / 47
规则 3-12 循环语句必须使用大括号 ............................................................................. 23
3.12 switch 语句 .................................................................................................................. 24
规则 3-13 switch 语句的 case/default 要缩进一层 ........................................... 24
3.13 表达式............................................................................................................................. 25
规则 3-14 表达式换行要保持换行的一致性,操作符放行末 ..................................... 25
4 注释约定...................................................................................................................................... 26
4.1 注释风格......................................................................................................................... 26
4.2 文件头注释..................................................................................................................... 26
规则 4-1 文件头注释需要包含 WINCC 版本信息。如果要公开脚本必须包含版权许
可。...................................................................................................................................... 26
4.3 函数头注释..................................................................................................................... 28
规则 4-2 一个项目、标准函数文件中只可定义一个函数,其中文件头注释合并进函
数头注释即可。.................................................................................................................. 28
4.4 代码注释......................................................................................................................... 29
规则 4-3 代码注释放于对应代码的上方或右边 ........................................................... 29
规则 4-4 注释符与注释内容间要有 1 空格;右置注释与前面代码至少 1 空格....... 29
规则 4-5 不用的代码段直接删除,不要注释掉 ........................................................... 30
5 声明约定...................................................................................................................................... 31
5.1 使用交叉引用的编码规则............................................................................................. 31
规则 5-1 脚本中使用 WINCC 变量,必须使用交叉引用的编码规则 ........................... 31
建议 5-1 定义的名称不要使用 WINCC 变量名禁用的字符。 ...................................... 32
5.2 变量声明......................................................................................................................... 32
5.2.1 类型说明符和等效项....................................................................................... 32
5.2.2 全局变量........................................................................................................... 33
建议 5-2 非对外接口的全局变量单独定义在一个函数文件中 ................................... 33
5.2.3 局部变量........................................................................................................... 33
WINCC C 脚本编程约定
4 / 47
规则 5-2 严禁使用未经初始化的变量 ........................................................................... 33
规则 5-3 禁止无效、冗余的变量初始化 ....................................................................... 34
5.3 函数声明......................................................................................................................... 34
5.4 宏声明............................................................................................................................. 35
5.4.1 预处理宏........................................................................................................... 35
5.4.2 函数式宏(function-like macro) ............................................................ 35
建议 5-3 使用函数代替函数式宏 ................................................................................... 35
5.4.3 规则 5-4 定义宏时,宏参数要使用完备的括号 ........................................ 36
5.4.4 规则 5-5 包含多条语句的函数式宏的实现语句必须放在 do-while(0)
中 38
5.4.5 规则 5-6 不允许把带副作用的表达式作为参数传递给函数式宏 ............ 39
5.4.6 建议 5-4 函数式宏定义中慎用 return、goto、continue、break 等
改变程序流程的语句.......................................................................................................... 39
5.4.7 建议 5-5 函数式宏不超过 10 行(非空非注释) ......................................... 41
6 定义约定...................................................................................................................................... 42
6.1 函数定义......................................................................................................................... 42
6.1.1 函数设计........................................................................................................... 42
规则 6-1 避免函数过长,函数不超过 50 行(非空非注释)...................................... 42
规则 6-2 避免函数的代码块嵌套过深,不要超过 4 层 ............................................... 42
建议 6-1 对函数的错误返回码要全面处理 ................................................................... 43
6.1.2 函数参数........................................................................................................... 44
建议 6-2 设计函数时,优先使用返回值而不是输出参数 ........................................... 44
建议 6-3 设计函数的参数时,统一按输入、输出、出入的顺序定义参数。 ........... 44
建议 6-4 使用强类型参数,避免使用 void* ............................................................... 44
建议 6-5 函数的指针参数如果不是用于修改所指向的对象就应该声明为指向
const 的指针...................................................................................................................... 45
剩余47页未读,继续阅读
资源评论
Z@=
- 粉丝: 66
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功