1、民 营科技2009 年第 10 期55MYKJ信息科学Java 语言在西门子 PLC 串口通信程序中的应用刘 博 霍家亮(同济大学 软件学院,上海 200092)1 Java 语言介绍Java 语言是一个支持网络计算的面向对象程序设计语言 。Java 语言吸收了 Smalltalk 语言和 C+语言的优点,并增加了其它特性,如支持并发程序设计 、网络通信和多媒体数据控制等 。Java 语言的优良特性使得Java 应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用 。Java 对对象技术的全面支持和 Java 平台内嵌的 API 能缩短应用系统的开发时间并降低成本 。Java 的编译一次
2、,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式 。2 PLC 与计算机间的串口通信S7-200 型 PLC 具有十分强大的联网功能,可以连接编程器 、人机接口设备或其它 PLC。S7-200 系列 PLC 的通信接口是 9 针 RS-485 信号接口,可通过 PC/PPI 电缆与计算机联接,也可通过 SINEC-L2 接口与其它PLC 连成网络 。采用 COM 口连接 PLC 与计算机,完成串口通信 。串口可以在使用一根线发送数据的同时用另一根线接收数据,可以很简单地实现远距离通信 。3 下位机 PLC 通讯程序的设计PLC 通讯是 PLC 实际应用中
3、一个十分关键的问题,可以利用 S7-200 的可编程通讯口模式来实现各种各样的通信功能,它完全可以实现很多十分复杂的功能 。要完成通信程序,必须完成如下两个方面:1)确定通信协议 。串口通信最重要的参数是波特率 、数据位 、停止位和奇偶校验等 。2)根据电路逻辑关系,使用 S7-200 设计出梯形图,利用模拟器测试通信的结果 。4 Java 串口通信开发环境的配置在用 JAVA 编写串口通信程序时,需要从 sun 公司网站上下载通信包,下载了 comm.jar 开发包后,与之一起的还有两个重要的文件,win32com.dll 和 m.properties。comm.jar 提供了通讯用的 ja
4、vaAPI; win32com.dll 提供了供 comm.jar 调用的本地驱动接口; m.properties 是这个驱动的类配置文件 。配置方法如下:1)将 comm.jar 复制到 libext 目录 。2)将 win21com.dll 复制到你的 RS232 应用程序运行的目录,即 user.dir。3)将 m.properties 复制到 lib23目录下 。5 Java 串口通信程序的编写正确使用串口完成通信功能,还需要正确设置串口通信参数,主要通信参数有:通信口(计算机通常有 COM1 和 COM2) 、波特率(标准设置是 9600) 、数据位(通常设置为 8) 、停止位(通常
5、设置为 1) 、奇偶校验位(奇校验 、偶校验 、无校验)等 。使用串口通信,需要如下三个步骤,下面简单介绍如下:1)打开串口如果你使用端口,必须先打开它,部分代码如下:tryCommPort serialPort=portId.open( “My App“, 60);/* 从端口中读取数据 */InputStream input=serialPort.getInputStream();input.read( .);/* 往端口中写数据 */OutputStream output=serialPort.getOutputStream();output.write( .)catch( PortIn
6、UseException ex) . 2)接收数据串口打开后,工控机就需要从串口读取数据,其关键代码如下:public void commWrite() String outString = ioBean.jTextField1.getText();if( outString.equals( “clear“) ioBean.Receiver.setText( “nCOM“+portId+“Receive: “);ioBean.jTextField1.setText( “);try outputStream.write( outString.getBytes();outputStream.wri
7、te( byte) 0x0D);ioBean.Receiver.setText( “nCOM“+portId+“+outString); catch( IOException e) 3)关闭串口使用完的端口,必须记得将其关闭,这样可以让其它的程序有机会使用它,不然其它程序使用该端口时可能会抛出端口正在使用中的错误 。值得注意的是, CommPortIdentifier 类只提供了开启端口的方法,而要关闭端口,则要调用 CommPort 类的 close()方法 。部分代码:public void commClose() try inputStream.close();outputStream.
8、close();serialPort.close();System.out.println( TimeStamp+“: msg2-SerialPort COM“+portId+“is closing“);ioBean.Receiver.append( “nCOM“+portId+“is closing“);catch( Exception e) System.out.println( e);6 结论综上所述,充分利用 Java 语言的跨平台优势,可以使得串口通信程序不再局限于某一种应用平台,更好的适应时代的发展需要 。参考文献1 张伟 .PC 机与多单片机之间串口通讯的设计方法 J.西安航空技
9、术高等专科学校学报, 2007.2 美 埃克尔著,陈昊鹏译 .Java 编程思想 M.第 4 版 .北京:机械工业出版社, 2007, 6.摘 要:可编程控制器( PLC)是一种数字运算操作的电子系统,专为在工业环境下应用而设计 。西门子 PLC 以性能强大 、使用方便的巨大优越性,已广为工程技术人员所熟知 。Java 语言是业界公认的优秀编程语言,功能十分强大,已经在许多领域有重要应用 。近年来, Java 语言在串口通信程序设计方面,也有了重要应用 。以西门子公司生产的 S7-200 型 PLC 为基础,给出了 PLC 与计算机通讯时上位机和下位机之间相应的简单程序 。关键词: PLC;串口通信; S7-200作者简介:刘博( 1981),男,吉林省吉林市人,同济大学在职研究生 。