资源描述:
《excel2000与s7_200plc自由口的通信》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、5自动化仪表6第25卷第10期2004年10月Excel2000与S7-200PLC自由口的通信TheFreePortCommunicationbetweenExcel2000andS7-200PLC12洪留荣王耀才12(淮北煤炭师范学院,淮北235000;中国矿业大学信电学院,徐州221008)摘要介绍了S7-200和Excel2000之间实现自由口通信的过程,提出了线程形式的基于事件驱动的数据读取方法,使Excel2000的计算功能和图表功能应用于控制系统中,具有一定的实际应用价值。关键词自由口通信DLL
2、串行通信AbstractTheprocessoffreeportcommunicationbetweenS7-200andExcel2000ispresented.Thethreadtypedatareadingmethodbasedoneventdrivenisstated.ThismakesthecalculationfunctionandchartfunctionofExcel2000canbeusedincontrolsystemwithpracticalvalue.KeywordsFreeportc
3、ommunicationDLLSerialcommunication西门子公司的S7-200系列PLC,具有极丰富的指它是接收信息控制字节,其位格式为:令集,广泛应用于工业控制领域。PLC在顺序控制中ENSCECILC/MTMRBK0具有很强的优势,但其计算编程繁琐,功能不强,同时其中:EN为是否接收允许;SC和EC为是否使用检用户也需要及时了解现场数据以及根据现场测量的数测起始和结束信息;IL表示是否检测空闲信息;C/M据推算的结果,根据结果执行相应的操作。微软公司确定定时器定时信息;TMR为是否使用SMB
4、92的值的Excel2000在计算方面很有优势,图表功能较强,是终止接收;BK为是否使用中断条件来检测起始信用户可视化界面的一个很好的选择。把S7-200和息。Excel2000的优势集成起来组成一个控制系统,是一种/传输0指令允许传送一个或多个字符的缓冲器,很有应用价值的方案,这中间的关键就是怎样使Excel最多可达255个字符。/传输0缓冲器的格式见图1。2000与S7-200PLC进行通信。1S7-200PLC通信S7-200PLC的自由口通信模式是一种通信格式由用户选择的非常灵活的通信方式,可与PC机
5、之间进图1/传输0缓冲器格式行串行通信。在这种模式下有两种通信指令,一是传/接收0指令允许接收一个或多个字符的缓冲器,输指令XMT,通过通信端口传输数据;另一种是接收指最多可达255个字符。/接收0缓冲器的格式如图2所令RCV,开始或终止/接收信息0服务。用户通过程序示。控制S7-200的串行通信端口,使用接收中断、传输中断、/传输0指令和/接收0指令控制通信端口操作。在进行自由口通信时,要用到以下几个特殊功能寄存[1]器。¹SMB30(用于端口0)和SMB130(用于端口1)。图2/接收0缓冲器格式其各个位
6、设置自由口模式,并配置自由口通信参数。/接收0指令支持空闲行检测、起始字符检测、空闲其位格式为:行和起始字符联合检测、断开检测、断开和起始字符联PPDBBBMM合检测、任何字符到达等开始条件;支持结束字符检其中:PP位用于奇偶选择;D位用于数据有效位选测、字符间计时器、信息计时器、最大字符计数、奇偶校择;BBB位用于波特率选择;MM位用于协议选择。验错误、用户终止等终止信息方法。ºSMB87(用于端口0)和SMB187(用于端口1)。在S7-200中,通信的发送和接收命令不能同时34PROCESSAUTOMA
7、TIONINSTRUMENTATION,Vol.25,No.10,Oct.,2004Excel2000与S7-200PLC自由口的通信洪留荣,等进行,在执行XMT时,要用语句终止接收命令:如果其最后一个参数为Overlapped类型时,用SetCom-LDSM010mMask改变事件则其立即返回0,利用这一特性,可以RSM8717,1//如果是1端口,应该用SMB18717结束线程。RCVTBL,n//n为端口号,0或1»关键代码在发送完数据后,再用语句函数HlrThreadPros的关键代码为:LDSM01
8、0error3=SetCommMask(mycomm,EVRxchar)//mycomm为SSM8717,1//如果是1端口,应该用SMB18717CreateFile所产生的病句。RCVBTL,nDoWhile(True)打开接收命令,以便随时接收上位机传过来的数据。xx=WaitCommEvent(mycomm,EVRxchar,Overlapped2)Ifxx340Then2Excel2000