SIMOTION 编程指南

上传人:冰*** 文档编号:126086422 上传时间:2020-03-21 格式:PDF 页数:13 大小:420.24KB
返回 下载 相关 举报
SIMOTION 编程指南_第1页
第1页 / 共13页
SIMOTION 编程指南_第2页
第2页 / 共13页
SIMOTION 编程指南_第3页
第3页 / 共13页
SIMOTION 编程指南_第4页
第4页 / 共13页
SIMOTION 编程指南_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《SIMOTION 编程指南》由会员分享,可在线阅读,更多相关《SIMOTION 编程指南(13页珍藏版)》请在金锄头文库上搜索。

1、SIMOTION 编程 一 2013 05 16 在SCOUT光盘里 有个非常详细的编程指南 点击此处查看 非常好 只是不 知道为什么被放在这么不起眼的位置 该编程指南用来帮助用户获得一个标准 统一的代码 并且使代码可以更容易地维护和重新使用 不仅如此 错误可以在 早期阶段 例如 由编译器 被识别和避免 统一外观 可维护以及清晰的源代码对于工程师和工程公司具 有非常重要的意义 有些遗憾 这么个好东西是全英文的 在学习SIMOTION的过 程中 我挑选出这本手册中比较重要的编程标准 翻译出来 希望对大家有所帮 助 其中规则是原则上必须遵守的 而建议则是尽量遵守的条目 其实编程的规 范标准不仅对于

2、SIMOTION工程师有意义 对于其他编程例如PLC也是可以借鉴的 代码支持识别错误和bug 例如 通过使用前缀可以简单地识别类型不兼容 目的 代码问题在早期阶段发现 规范标准应用程序和库 目的 程序代码更容易学习和提高程序代码的可重用性 模块化 目的 增加程序透明度水平 封装子功能 使用不同的模块进行简单组合 每个模块定义清晰而独立的接口 增加适用性使代码可以持续改进 目的 改变的各个模块的程序代码对于功能 功能块库或项目 方案影响降到最 低 不同的编程工程师应该可以在单独的模块中修改程序代码 规则规则 1 1 每一个编程的源文件必须进行文档记录 特别是专用的FB FC 并应该使用统一 的模

3、板 程序模板在SCOUT光盘中有提供 建议 不使用特殊字符 例如 U A等 规则规则 2 2 TAB不容许在源代码中使用 应使用四个空格的缩进 当使用SCOUT内部ST编辑器 中是自动完成的 这是为了避免不同的编译器对于TAB的解释长度差异而考虑的 建议 为提高可读性 源代码单行长度应限制在 80 个字符 建议 各种ST代码段相关的功能应使用换行符分隔 建议 整体的意见 描述一个函数或代码段的战略注释 应设在相应的代码段 开始描述 局部注释 战术注释 如果可能的话 应位于代码行的同行末尾 否 则在相关联的代码行之前 规则规则 3 3 在ST中注释以 开始 注释在斜线符号后开始 没有任何空格 出

4、于测试目的 www PLC 完整的块可以被简单地使用 进行屏蔽 规则规则 4 4 每个程序单元名称需包含一个前缀 这个前缀表明当前的程序单元功能 规则规则 5 5 使用前缀x 表明在一个单位中使用数据 功能 FB和程序 以确保少量代码的 POU的紧凑 规则规则 6 6 前导下划线字符 识别功能和功能块是保留给西门子系统功能的 前导 下划线字符不应该被用来在应用程序本身 规则规则 7 7 不得使用使用大写或小写进行标识符的区分 一旦某种书写方式的标识符已被选 中 其在所有的源代码中使用 推荐 标识符中的名称采用英文 名称表示上下文中的源代码标识符的意义和目 的 规则规则 8 8 FC FB的输入

5、和输出变量不使用前缀 如果结构被用于输入和输出变量 那么 该结构的元素成员应具有前缀 规则规则 9 9 常量不包含前缀 规则规则 1010 使用前缀后名称以大写字母开始 www PLC 举例 局部变量 rMaxLength 规则规则 1111 在系统中定义的名称 例如 变量和函数的名称 是不允许再使用的 推荐 名称的最大长度为 32 个字符 规则规则 1212 功能 功能块和程序名称结构应根据下面的示意图 组合 操作 对象 属性 例如 标识符 FCSwapWordBigEndian 名称 SwapWordBigEndian 操作 Swap 对象 Word 属性 BigEndian 规则规则 1

6、313 前缀和标识符之间使用分隔符 下划线字符 是不允许的 规则规则 1414 变量前缀用来表示数据类型的内存位置 括号中的前缀是一种替代方法 使用哪一种需要在整个项目中保持一致 www PLC 举例 gasFeeder 全局送料器结构数组 推荐 www PLC 使用 字母 e s a 开头并且使用 type 作为结尾 www PLC SIMOTION SIMOTION 编程 二 编程 二 规则规则 1515 枚举 枚举 的元素全部写大写字母 如果包括单独的单词 那么使用下划线字 符分开 常量也是 规则规则 1616 前缀和标识符不使用下划线隔开 推荐 数组范围应从 0 开始到 最大值 1 结

7、束 推荐 类型定义应在接口部分进行 特定的设备变量类型须具有独特 明确的定 义 推荐 类型定义并不适用于基本数据类型 规则规则 1717 常量的名称总是用大写字母 为了能够识别单个的单词或缩写 单词或缩写之间 应插入下划线字符 推荐 应加以避免直接在代码中使用数值 如果可能的话 使用常量 规则规则 1818 当声明变量 该变量被缩进 然后由换行符分开 推荐 变量只是在默认数据类型初值不适用时进行初始化 如果可能的话 在初 始化时 应作出定义的变量运行的原因 推荐 初始化 分配常量数据 通常使用它的数据类型 文字 实现 Example b16Mask1 WORD 16 01 not ok b16

8、Mask2 WORD 16 0001 ok b8Mask3 BYTE 2 0000 1010 ok b32Mask4 DWORD 5 not ok b32Mask5 DWORD 16 0000 0005 ok r32Temp1 REAL 40 not ok r32Temp2 REAL 40 0 ok i16Counter1 INT 16 00 not ok i16Counter2 INT 10 ok 推荐 尽可能的避免在程序中访问操作 SIMOTION 设备的过程映像 以提高代码 的可移植性 应在集中的位置进行 IO 的定义 Example declaration boJogPos AT IX

9、10 1 BOOL b8Port1 AT IB1 BYTE i16ToolKey AT IW10 INT cast possible i32ProgNum AT QD10 DINT access to I O Image www PLC b8Image b8Port1 ok b8Image IB1 not ok 规则规则 1919 每个程序中需要在程序代码中包含一个描述性的标题 描述中包含了以下几点 功能的说明 任务分配的说明 目标系统的要求 程序版本一起与作者和日期 具体可以参考模板和手册中的实例 推荐 只要不产生负面影响的理解意义的前提下二元运算符和赋值操作符前后应 均有空格 Exampl

10、e i8SetValue i8SetValue1 i8SetValue2 ok i8SetValue i8SetValue1 i8SetValue2 not ok 推荐 表达式应始终设置在方括号中 以清楚显示的顺序解释 Example boSetFlag r32ActualPosition 150 0 推荐 对于复杂的表达式 为了突出重点 每个 子条件 使用一个换行符 这 意味着代码可以使用透明 清晰的注释 推荐 条件部分和指令部分之间应保持一个严格的划分 规则规则 2020 如果一行写不下完整的条件 布尔逻辑运算符应位于每行的最右侧 IF 指令中 的条件需缩进四个空格 THEN 与对应的 I

11、F 位于同一高度 如果 IF 条件可以在 一行写完 则 THEN 位于此行的最右端 对于每一个新的结构层次 括号字符偏 移一个空白 所以括号中的条件结构层次以相同的方式缩进 具体可以参考模板 和手册中的实例 规则规则 2121 一个 CASE 指令必须始终包含一个 else 分支 以便能够对运行期间发生的错误进 行处理 规则规则 2222 主体控制结构中的每个指令均被缩进 须整齐 规则规则 2323 如果功能或功能块提供错误代码 这些错误码必须始终进行评估 www PLC 推荐 一个功能 FC 的返回类型应始终声明 Example FUNCTION FCSwapWord WORD descri

12、ption 推荐 一个函数调用时应该按照声明的顺序进行参数赋值 输入参数应该有默 认值 因为它可使程序的调用更简短 更透明 推荐 对于 ST 编程 应该每个参数开始一个新行 推荐 很多输入参数 值传递 尽可能被封装在一个结构 更高效的拷贝 在 LAD FBD 中 个别变量经常需要修改其数值 例如对于简单的使用控制变 量 可以作为单独的变量设置 输入输出参数从运行的角度来看是更有效的调 用 名称调用 e g 用于传递大的数据量 举例 structure within VAR IN OUT FBBottleCheckOutlet formulaInOut sFormula4711 vectorIn

13、Out sMatrix2011 8 规则规则 2424 如果参数具有标准意义则标识符和功能方面需要根据 PLCopen 的 V1 1 规范 然 后应使用适当的标准标识符 此外 可以使用 Reset 中止函数和函数块并输出显 示 resetActive 这两个变量是可选的 PLCopen 的 V1 1 中没有定义 建议 如果程序员使用 VAR INPUT 参数 reset 复位 则可以使用 VAR OUTPUT 参 数 resetActive 在复位过程中此 resetActive 参数信号始终存在 例如 轴目 前被停止 但还没有到达停止状态 如果可以在一个时钟周期停止 则 resetActiv

14、e 仅显示一个周期的高电平 规则规则 2525 与 PLCopen 相反 总是使用 Done 参数代替 inVelocity INGEAR INSYNC 推荐 如果用布尔输出变量 INGEAR 和 INSYNC 名称 那么这些变量应该与 SIMOTION 系统函数的输出 MC GearIn MC CamIn 相同 设置为 TRUE 时 只 要该轴与主站同步运行轴 规则规则 2626 如果程序员使用的 VAR INPUT 参数 execute 则 VAR OUTPUT 参数 Done 必须使用 规则规则 2727 FC 和 FB 参数不使用前缀 这样做的原因是为了 SIMOTION 参数名称和

15、PLCopen www PLC 的规范保持一致性 规则规则 2828 FC 和 FB 参数内的结构元素应使用前缀 规则规则 2929 参数名称中包含一些词汇 应选择与口语相同的词语的序列 参数名称以小写字 母开始 包含一些词汇的名称都写在一起 每一个字以大写字母开始 推荐 库的名称须包括前缀 L 如 LCarton 不使用下划线字符 库名称的最 大字符长度限于 8 个字符以内 www PLC SIMOTION SIMOTION 编程 三 编程 三 续编程指南翻译 规则规则 3030 所有的功能 功能块 导出类型的名称定义结构为 前缀 该库的名称 名称 type 这可以防止被分配相同的名称用于其

16、它库 名称空间的使用是不允许的 更长的 名字会使处理 LAD FBD MCC 更加困难 规则规则 3131 每个库包含一个 UNIT 的版本历史记录 此 UNIT 名称 aVersion 规则规则 3232 扩展类型的定义和常量在单独的 UNIT 中独立声明 规则规则 3333 在一个库中定义的类型定义最多可以从库中导出两个 UNIT dProtected 的名称 表示知识产权保护和 dPublic 名称表示开放的 unit 定义 规则规则 3434 在一个库中最多有两个 unit 定义全局常量 支持产权保护的名称为 cProtected 开放的 unit 定义为 cPublic 注意 数据和常量定义 UNIT 的名称只是为库定义 举例如下 www PLC 规则规则 3535 一种应用定义一个库 例如 DPV1 服务 或者一种设备类型 包装机 或者相 似的设备定义一个库 规则规则 3636 在库中的功能或者功能块是被用户程序反复被使用的 如果功能或者功能块只是 在库中使用 则功能或者功能块的名称中不包含库的名称 通用功能或者功能块 按如下规则使用 1 小的功能或者功能块如果在库中使用独

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 公共安全/评价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号