中的串口通讯,财富聚焦

提升悬链控制部件的性能磷化2楼悬链的控制部件是基于OmronC200H系列的PLC控制组件,控制核心CPU01模块功能单一,不具备最基本的串口通讯能力。程序维护采用手持编程器,显示屏小,操作繁琐。现将PLC升级为C200HE系列CPU42型,它具有标准的串口通讯能力,扫描周期更快,同时配合Omron系列PLC专用工具软件CPT、SSS等。极大的方便了日常软件维护工作,并可以动态、人机大屏幕交互方式显示I/O各点的变化,同时也为上位机提供强大完善的监控基础。

关于串行接口

串口通讯技术(来自http://www.gjwtech.com)

开发全线的动态监控系统利用上位机及电视画面实现底漆线的动态监控。系统采用工业控制微机为主导的控制方法,兼顾PLC、视频矩阵控制为辅的集成控制方式,完成全线设备多画面的实时监控。另外采用电视机完成悬链上9个关键故障点的动态显示任务,9个画面可转换为4个、1个画面,并可设置滚动显示、任意切换画面。

串行接口(Serial port)又称“串口”,主要用于串行式逐位数据传输。常见的有一般电脑应用的RS-232(使用 25 针或 9 针连接器)和工业电脑应用的半双工RS-485与全双工RS-422。

串行接口按电气标准及协议来分,包括RS-232-C、RS-422、RS485、USB等。
RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。 
RS-232-C :也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、
调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座。自IBM
PC/AT开始使用简化了的9芯D型插座。至今25芯插头座现代应用中已经很少采用。电脑一般有两个串行口:COM1和COM2,9针D形接口通常在计算机后面能看到。现在有很多手机数据线或者物流接收器都采用COM口与计算机相连。

RS-422 :为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-
422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。

RS-485 :为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485
标准
,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为
TIA/EIA-485-A标准。

Universal Serial
Bus(通用串行总线) :简称USB,
是目前电脑上应用较广泛的接口规范,由Intel、Microsoft、Compaq、IBM、NEC、Northern
Telcom等几家大厂商发起的新型外设接口标准。USB接口是电脑主板上的一种四针接口,其中中间两个针传输数据,两边两个针给外设供电。USB接口速度快、连接简单、不需要外接电源,传输速度12Mbps,新的USB
2.0可达480Mbps;电缆最大长度5米,USB电缆有4条线:2条信号线,2条电源线,可提供5伏特电源,USB电缆还分屏蔽和非屏蔽两种,屏蔽电缆传输速度可达12Mbps,价格较贵,非屏蔽电缆速度为1.5Mbps,但价格便宜;USB通过串联方式最多可串接127个设备;支持热插拔。最新的规格是USB
3.0。

RJ-45接口 :是以太网最为常用的接口,RJ45是一个常用名称,指的是由IEC(60)603-7标准化,使用由国际性的接插件标准定义的8个位置(8针)的模块化插孔或者插头。

串口属性

图片 1

 

  1. PortName 串口名    默认值COM1

串口对于操作系统来说是一个文件,如果设置PortName为本机不存在的串口名(即文件名),如“COM7”或“COMK”,Open()打开串口将失败,提示“端口COM7不存在”。

  1. BaudRate 获取或设置串行波特率bit/s    默认值9600

比特率=波特率X单个调制状态对应的二进制位数。

RS232是要用在近距离传输上最大距离为30M

RS485用在长距离传输最大距离1200M

  1. DataBits 获取或设置每个字节的标准数据位长度    默认值8

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准
ASCII码),那么每个数据包使用7位数据。每个包

是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

  1. StopBits 获取或设置每个字节的标准停止位数    默认值One

用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数

越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

  1. Parity 获取或设置奇偶校验检查协议    默认值None

在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验

位为0,保证逻辑高的位数是偶数个。如果是奇校验,

校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收

串口通讯基础

  1. 串口基本接线方法
    (作者:龚建伟 2001.6.24)本文介绍了串口常用接线方法及注意事项
  2. 有关RS232与RS485接口的问答
    (来自中国工控网)
    RS232与RS485接口的区别及各自特点以及在使用中应注意事项
  3. 接口技术的基本知识
    (来自中国工控网)
    评论:串口是计算机接口的一种,在编程中了解其它接口是有益的,如在使用中断时,你就要知道其它接口用了哪些中断。
  4. 串行通信波特率的一种自动检测方法
    (任贵勇等)
  5. 串行通信简单知识及单工半双工全双工的定义
    (来自中国工控网)
  6. Serial Communication in Win32(英)Allen
    Denver(MS)(英)
    评论:相当详尽,是全面了解串行通讯的好资料
  7. 浅析PC机串口通讯流控制 (作者:龚建伟
    2001.8.23)
  8. 什么是奇偶校验
  9. 串行通讯的概念及接口电路
  10. RS-232、RS-422与RS-485标准及应用
  11. 串行数据标准选用之我见(RS-232、RS-422/RS-485究竟选谁啊?)
  12. 全双工和半双工方式
  13. 通信协议

  1. 网络通信的数据包(帧)

  1. 同步通信方式

  1. RS232C详解(一)

  1. RS232C详解(二)

  1. 如何计算在一个控制周期内通过串口能发送的字节数(龚建伟)

  1. 现场总线与RS232、RS485的本质区别[2002.07.01加入]
  2. CRC算法与实现

实现开关量的数据采集上位机加装I/O板,主要针对未使用PLC的预处理系统中,无法通过PLC的通讯能力实现与上位机的联系,通过增设4块I/O板,对中控台内现有的开关量进行数据采集,使电泳预处理设备的状态能很直观的反映在终端显示器上。

串口(COM)读写操作的三种方式:

第1种方式是采用微软在.NET2.0推出了一个串口控件,SerialPort类,但必须是.NET2.0才可以。 
第2种方式是用API写串口通信,虽然难度高,但可以方便实现自己想要的各种功能。 
第3种方式是通过采用Visual Studio
6.0中原来的MSComm控件这是最简单的,最方便的方法,但需要注册。

 

Windows串口编程相关

  1. 用MFC实现串口编程(作者:付杰
    2000年08月04日
    11:28)本文详细介绍了串行通信的基本原理,以及在Windows
    NT、Win98环境下用MFC实现串口(COM)通信的方法:使用ActiveX控件或Win
    API.并给出用Visual
    C++6.0编写的相应MFC32位应用程序。本文既写了在Windows中怎样用VC控件MSComm,又说明了API技术编程方法,在写用MSComm控件时,数据类型的转换说得不是太明白,初次涉猎串口编程的朋友恐怕看了还是编不出来;直接从底层编写的部分值得一读,说得较为详细,但你得先从VC教本上看一看什么是线程。
    加入时间:2001.6.25

  1. Windows
    95中的串行通信
    (作者:王齐)
    本文方法在Win95下VC2.0下完成,直接从底层编程,用CreateFile()打开串行口,且说明了线程的应用,对于想了解串口通信底层的读者可以读者读读,对于想轻轻松松地完成编程任务的朋友,就不用看了,本专栏不是还有许多让你轻松的文章吗。
  2. 在Windows95下PC机和单片机的串行通信(作者:王亭等)本文给出了用VC++5.0和PL/M-96语言编写的串行通信程序,说明了API技术进行串口编程;直接从底层编写的部分值得一读,对于编写简单的程序,够用了。单片机与PC如何接口,如果你做的话,可以参考。加入时间:2001.6.25
  3. 基于多线程技术和自定义消息编程实现Windows
    9x异步串行通信(作者:张志明等)本文直接从底层编程用的是C++Builder,想了解C++Builder中多线程技术和消息编程的读者可以看一看。加入时间:2001.6.25

  1. 在VC++中利用ActiveX控件开发串行通信程序(作者:黄海荣)本文用VC控件MSComm进行串口编程,同样,在写用MSComm控件时,数据类型的转换阐述得不是太明白,代码中用到了USES_CONVERSION和T2OLE宏进行ANSI字符串到Unicode字符串的转换,没有作细致说明
    加入时间:2001.6.25

  1. 串口调试助手源程序V1.0及详细编程过程(作者:龚建伟),
    最初我用VC控件MSComm编写串口通信程序的源代码,并写出详细的编程过程,我相信,如果你用VC编程,那么有了这个代码,就可以轻而易举地完成串口编程任务了。(也许本文过于详细,高手就不用看)加入时间:2001.6.26
  2. 串口调试助手源程序V1.0及详细编程过程(二)(作者:龚建伟)
    [加入时间:2001.8.26]
  3. 开发通信软件的技术与技巧
    (作者:王渤)本文对MODEM编程结合MSComm控件作了较为详细的说明,想了解MODEM编程的读者可以看看,文章后附实例程序。加入时间:2001.7.26   

  1. MSComm控件使用详解
    (龚建伟整理)MSComm控件是串口编程中常用控件,本文对其参数作了说明。
    加入时间:2001.7.26     

  1. 如何用Delphi开发串口通信程序
    本文对在Delphi中
    使用ActiveX控件,使用行间汇编,用Delphi调用可执行应用程序三种方法实现串口通信进行了阐述。不过在Delphi中进行串口编程并不象作者所说的那样令人头疼,我就知道几个很好用的串口程序是用Delphi编写的(我不太会用Delphi)。加入时间:2001.7.26   
  2. VisualBasic4.0通信程序设计
    (作者:孙海健等) 本文对在VB4.0中
    使用ActiveX控件MSComm进行串口编程,给出了一个实例。加入时间:2001.7.26  
  3. VB串口编程的几个问题
    (作者:易兵)提要:阐述了串口数据接收方式,如何处理不定长数据的接收,用字符方式收发码值大于127的字符数据串口通讯问答2。加入时间:2001.8.02

  1. 一个单片机串行数据采集/传输模块的设计
    (作者:吴勇军等)
    摘 要 以GMS97C2051单片机为核心,采用TLC2543
    12位串行A/D转换器,设计了一个串行数据采集/传输模块,给出了硬件原理图和主要源程序。加入时间:2001.8.13

  1. 实战串口通讯(罗云彬)
    串口编程实际问题讨论,如同步异步、线程处理过程、流控制等,当你进一步编程时,这些问题都会碰到的。加入时间:2001.8.15
  2. Serial Communication with Borland C++ Builder(David
    Poinsett)[加入时间:2001.8.29]
  3. API接口的VB串口查询法
    (作者:焦纯等) 
    [加入时间:2001.9.9]

  1. 在DELPHI中用SPCOMM实现串口编程[加入时间:2001.9.12] 

  1. Window
    95串口通讯函数集合(只适用于32位)
    [加入时间:2001.9.12]
  2. 利用Visual
    Basic实现无线通讯(姜棣昭)[加入时间:2001.9.13]
  3. 用PowerBuilder5设计串口通讯程序
    (王学军)[加入时间:2001.9.14]
  4. WIN32串口编程(金贝贝)—
    其中流控设置的说明可以参考
    [加入时间:2001.9.27]
  5. 利用Java实现串口全双工通讯(蒋清野)[加入时间:2001.9.27]

  1. 一个使用Java读取串口的程序(qyjohn)[加入时间:2001.10.03]
  2. VB6.0进行串口实时数据采集(MSComm)(李湘江)[加入时间:2001.9.27]

  1. 用VC6.0实现PC机与单片机之间串行通讯的方法(于小亿)[加入时间:2001.9.28]
  2. 用VB6实现仪器串口通讯及检测功能(才滢)[加入时间:2001.9.28]

  1. VC中ODBC数据库技术应用源程序详解之一(串口数据保存相关)(作者:熊光明
    龚建伟)[加入时间:2001.10.02]
  2. VC中ODBC数据库技术应用源程序详解之二(串口数据保存相关)(作者:熊光明
    龚建伟)
    [加入时间:2001.10.02]

  1. VC串口通讯例程(阮帮秋)[加入时间:2001.10.03]

  1. VC中基于文档(SDI/MDI)程序中能直接用MSComm通讯控件吗?
    (作者:龚建伟
    熊光明)[加入时间:2001.10.16]

  1. VC中在基于单文档(SDI)程序中应用MSCOMM串口通讯控件详细编程说明(附源程序)(作者:龚建伟)[VC6.0,Win98/2000][加入时间:2001.10.22]
  2. 如何在串口通讯程序中处理数据包
    (作者:龚建伟)[加入时间:2001.10.30]
  3. 用VC6开发微机与OMRON
    PLC间串行通讯程序(作者:李志刚)[加入时间:2001.11.09]
  4. 简单而强大的多线程串口编程工具CserialPort类(附VC基于MFC单文档协议通讯源程序)(作者:龚建伟)[加入时间:2001.11.09]
  5. [VB6.0
    WIN98]VB6.0在Windows98下实现单台微机与多台变频器的串行通信控制(陈立定)[加入时间:2001.11.12]
  6. [VB6,中文字符,128问题]MSComm控件实现中文Win
    9x下的通信(陈新望)[加入时间:2001.12.3]
  7. [VC6,定时]高速串口数据实时采集的解决方案和例程(李斌)
    [加入时间:2001.12.2]
  8. [Delphi,SPCOMM]Delphi中串口通讯的实现(张海航)[加入时间:2001.12.3]
  9. [VC6,API]Windows98下交流变频器的API串口通信(袁佑新等)[加入时间:2002.01.25]
  10. [VC6,API,多线程]多线程技术在VC++串口通信程序中的应用研究[加入时间:2002.07.01]

系统设计实现方法及效果系统中工控机承担了现场数据采集、故障分析、动态形显示、视频显示、数据处理、与PLC间的数据通讯等任务。这里选用上位机配置为研华、P3/1G、21显示器。接口实现悬链升级后使用的PLC(OmronC200HE)具有标准的RS-232通讯端口,可以与上位机的通讯端口RS-232、RS-422(RS-232RS422适配器)。由接口标准的差异比较如1所示。

1接口标准的差异比较由此可知,RS232总线的工作方式为非平衡,在干扰和长距离时,传输数据不准确,从而速率下降,对于扩展性来说,RS232只能点对点传输,而RS422就更加灵活,多点传输。

为实现更高的稳定性,更长的传输距离,更好的可扩展性,更大的传输率,同时满足未来发展的需要,RS422总线方式更合适,而PLC提供的是RS232接口,由RS232与RS422的电气特性比较如2所示。

数据通讯实现系统对通讯方式没有过多的要求,所以采用一种既优化又经济的通讯方式,即Hostlink系统[4],该系统是将上位机链接通信通过在上位机和PC之间交换命令和应答实现的,一次交换传输的命令或应答数为一帧,最多包含131个数据字符,其命令格式如2所示。

2上位机和PC之间的交换命令格式Hostlink系统允许一台上位机通过上位机链接命令向Hostlink系统的PLC发送命令,PLC处理来自上位机的每条指令,并把结果传回上位机。

上位机监控:上位机可对PLC的程序进行传送或读取,并可对PLC数据区进行读写操作。

双重检查系统:所有通信都将作奇偶检验和帧检验,从而能估计出通信中的错误。

位机与视频信号的实现一方面由现场9路摄像头采样悬链9个视频关键点,由9路画面分割器输出在TV上,作为主要监控另一方面将9路采样视频关键点由10路画面转换矩阵器输入到上位机的视频卡中,通过视频播放软件进行辅助监控,其像控制由矩阵器提供的控制接口RS-485与上位机的RS-232来完成的,由于接口特性的差别如3所示。

相关文章