励磁软件编程培训讲义.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
励磁软件编程培训讲义 余翔 内容 规划 逻辑 风格 高级语言与低级语言 细节 资源 错误 规划 任何大型软件都是由模块构成的。 由主干到分支,由整体到细节,逐步细化。 好处:明确软件如何实现,便于分工、实现以及后期维护。 励磁控制 主循环 中断服务程序 逻辑 软件能否正常实现其功能的基础 几个失败的例子 RS232通信:PC←→V40 无功过载限制 RS232通信:PC←→V40 改进后 过励限制 励磁系统强励的原因大部分是由发电机或与其相联系统发生短路故障,励磁系统为保证电力系统稳定和继电保护可靠动作自动强行励磁所致。设置这一限制的目的是防止励磁绕组较长时间过电流而过热。 实现原理 设置热量积分Hsum。If>If0时,根据If大小计算热量积分步长,对Hsum进行累加。If<If0时递减。如果Hsum>Hmax则触发限制。 原来的算法 错误分析 H1×T1=H2×T2=Hmax 步长:Hx=H1+(H2-H1)/(If2-If1)×(Ifx-If1) 限制时间:Tx=T1+(T2-T1)/(If2-If1)×(Ifx-If1) Hx×Tx=H1×T1+……=Hmax+……>Hmax 如果按照原来的算法,限制曲线仅在节点处准确,其余区域限制时间略小于限制要求。 过励限制 修改后 正确取法:根据If插值求取对应的限制时间,然后根据时间取步长。 步长与时间的关系:Step=Hmax/t 编程风格 变量命名 函数命名 流程图 注释 模块化编程 命名、注释 建议使用有意义的英语单词,如 Cal_Alpha( ) //控制角计算函数 Auto_Ex_Fail_Flag //起励失败标志 每一个变量、函数声明时都需要对其功能、应用范围进行注释。 匈牙利命名法 nOverExCount 流程图 便于后期维护、原理分析以及合作开发 自用到模块级 新人接手则必须到具体的函数实现 细节 RS232编程(16C550) 问题:芯片说明书指出16C550可以使用FIFO接收指定长度数据。实际测试时DSP连续读出的都是第一个字符。后来没有使用FIFO中断,每次只读一个字节。 还是RS232编程 循环读写串口,只能实现单工通信。 模块化编程 C语言:字符缩进,先输入{、},再输入模块内容。 VB:打开文件open语句后接着输入Close语句关闭文件,最后输入中间的处理部分。 汇编:象C语言一样对寄存器进行压栈保护,使各个函数模块化,调用时不必考虑保护寄存器内容。 汇编语言的模块化编程 小的程序不需要 函数需要在入口对需要使用的寄存器进行压栈操作,在出口弹出。保证函数的调用不会影响寄存器的内容(保存参数的寄存器可以例外)。 没有模块化编程的程序,改动一处程序,可能引起其他部分的异常。 高级语言和低级语言 高级语言 编程效率高、可读性好、移植性好 低级语言 直接处理硬件资源,执行效率高 在X86CPU上运行的几种语言 ASM 速度第一,可读性差,调试麻烦。 PL/M 不支持浮点,速度略高于C。可读性好。 C 运行速度逊于汇编,可读性好,编程效率高,模块化编程。 Basic 不能生成可执行文件,编译器边解释边执行,速度最慢。可读性好, 了解低级语言有利于理解高级语言 C++示例 a=1; y=0; if (a || y++) { ……//与y无关的代码 } //此时y=0 编译成汇编语言 cmp ax, 0 jnz loop mov ax, y inc ax mov y, ax jz loop …… loop: …… 实例:3阶矩阵乘法(C语言版) 3阶矩阵乘法(DSPC32汇编版) 资源 技术支持 网上资源 技术支持 面对新的硬件很难迅速提出可行的方案,甚至连硬件体系是否满足要求都不知道。 硬件供货商的技术支持人员对硬件的了解程度远胜于己,可以提供相关解决方案甚至是核心代码。对于一些具体功能的实现也可以提供建设性意见。 硬件相关的开发环境通常带有丰富的库函数,没有可能也没有必要去全部了解。对于实现某种功能,还是咨询技术支持需要调用哪些函数为好。 硬件供货商可以修改部分函数源代码以满足客户要求。 PCC励磁实现方案 关键:输出控制脉冲、交流采样 能达公司准备了两个CPU模块,一个专门用于实现交流采样。 贝加莱公司的支持: 控制脉冲输出部分的原理和代码 交流采样的实现原理 其他硬件相关功能: 参数固化 CAN通信(PCC模块不支持1M波特率,CAN读写函数中的id属性含义不同) 网上资源 硬件供货商通常在自己的主页提供了大量示范程序、相关软件升级包。 对于某些常用功能网上通常也有相关代码和说明。 CAN通信(Sja1000)

文档评论(0)

各行业精品文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

认证主体李**

1亿VIP精品文档

相关文档

相关课程推荐