windowWindows环境下实现cdt.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
windowWindows环境下实现cdt

远动CDT循环规约编程 摘 要:介绍了在Windows环境下,利用DELPHI软件与WIN32 API函数结合实现部颁CDT循环规约的方法,完整地给了实现CDT循环规约的全过程,可满足为电力系统高级应用软件提供共享数据资源的需要。  关键词:Windows环境;CDT循环规约;DELPHI;线程;同步   调度自动化及变电站综合自动化已广泛应用于电力系统中,其SCADA系统所采集到的实时数据是宝贵的资源,利用这些资源进一步开发高级应用软件是很有意义的。  介绍的就是一种利用部颁CDT循环规约进行串口通信的实现方法。该程序使用DELPHI开发,可利用WIN32 API函数或利用Micrsosft的MSComm控件实现。 1涉及规约简介1.1帧的结构  部颁CDT循环规约规定,数据以帧结构循环发送。   1 帧由一个同步字,一个控制字,和N个信息字组成。帧长度受缓冲区长度限制,一般以信息字N不超过160为限。 2 一个同步字由六个字节组成,它们是EBH,90H,EBH,90H,EBH,90H。 3 一个控制字由六个字节组成,它们是控制字节,帧类别码,信息字数N,校验码等组成。 4 控制字节固定为OF1H。  5 帧类别码,如表1。 6 信息字数是指本帧类预定发送的信息字数,不包括遥信插入,遥调/调返校,遥控/调执行确认,遥控/调超时撤消等信息字。 7 一般信息字格式   每个遥测信息字中传送两路遥测量。每 b15…b0 为一路遥测量,b11…b0为模拟量大小,b11 0时为正数,b11 1时为负数,以2为补码负数,b14 1表示溢出,b15 1表示无数,b12,b13无意义。功能码 00H-7FH 用来标识遥测信息字,校验码为CRC校验码。  每个遥信信息字 b15…b0 中含32个状态位。b 0或b 1各表示一种状态。每 b15…b0 为一单元。1.2发送规则  数据以帧的结构循环发送,重要的帧在A帧发送,次重要的帧在B帧发送,一般遥测在C帧发送,遥信信息在DI帧发送,变位遥信随机插入发送。以控制字和功能码共同鉴别数据。1.3CRC校验  控制字和信息字都是 n,k 48,8 组码,生成多项式G X X8+X2+X+1,陪集为FFH。G X 以模2除前5个字节,生成R X ,以R X 的反码为校验码。 2编程思想  RS-232C协议规定了数据终端设备DTE与数据通信设备DCE之间的通信标准。近距离 小于5 m 通信时可省去DCE设备进行“零”调制解调器的双机通信。其物理接线为简单的三线 TXD,RXD,地线 传输方式。可编程串口芯片完成物理层的位校验,启始位,终止位添加与检出等操作,8273等芯片还可进行硬件 CRC校验。根据ISO中关于OSI层网络模型定义:对链路层的通信规约可在链路层直接编程,由串口。2.1串口通信  点对点的通信有多种实现方法,用DELPHI开发串口通信软件一般有两种方法:一是利用Windows的通信API函数,另一种采用Microsoft的MSComm控件。利用API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点是实现功能强,应用面广泛,适合于编写较为复杂的底层通信程序。而利用MSComm控件则相对较简单,该控件具有大量的与串口通信密切相关的属性及事件,提供了对串口的各种操作。MSComm控件的主要属性及事件。   CommPort:设置或返回串口端口号,缺省值为1。  Setting:设置或返回串口通信参数,格式为“波特率,奇偶校验位,数据位,停止位”。  PortOpen:打开或关闭串行端口。  InBufferSize:设置或返回接收缓冲区的大小,缺省值为1024字节。  InBufferCount:返回接收缓冲区内等待读取的字节数。  Rthreshold:该属性为一阀值,它确定当接收缓冲区内的字节数达到或超过该值后就产生代码为ComEvReceive的OnComm事件。  Sthreshold:该属性为一阀值,它确定当接收缓冲区内的字节数少于该值后就产生代码为ComEvSend的OnComm事件。  Input:从缓冲区读取一串字符。  OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。  OutBufferCount:返回发送缓冲区内等待发送的字节数。  如果在通信过程中发生错误或事件,就会触发OnComm事件,并由CommEvent属性代码反映错误类型,在通信程序的设计中可根据该属性来执行不同的操作。  由于发送方循环发送,接收方必须持续接收,而且外设速度相对较慢。所以采用善于后台处理的工作者线程专司数据接收的工作。  多线程是多任务的一种表现,32位Windows中各线程以抢占方式运行CPU 20 ms的时间片,线程的优先级确定

文档评论(0)

liudao + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档