版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Good is good, but better carries it.精益求精,善益求善。Vb60+实现计算机与三菱PLC的通信-Vb6.0实现计算机与三菱PLC的通信来源:摘要:本文介绍了VB进行串口通信的各种基本方式和三菱可编程控制器之间的通信的程序设计,重点介绍了利用MSCOMM.OCX进行串行通信的设计方法。关键词:串行通信,PLC,VisualBasic6.0Abstract:DescribesallkindsofbasicserialportcommunicationmethodsusingVisualBasic6.0anddesignoffreeportcommunicatio
2、nprogramofMITSUBISHPLC,furthermoresetfocusonthedesigningmethodofserialportcommunicationthroughdynamiclinkedlibraryinVisualBasic6.0KeyWords:Serialportcommunication,PLC,VisualBasic6.0一、引言在工业生产中,人们常常面临着数据采集与管理。作为工厂自动化的三大支柱可编程控制器PLC(ProgrammableLogicController),由于其安全可靠,广泛的用于数据采集与控制。生产过程中,要监视PLC内部的数据与运行状
3、况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用高级语言开发一个简易实用的通信程序。微软公司推出的VisualBasic6.0,开发串行通信程序时,有两种方法,一种是用WindowsAPI函数,另一种是用VB支持的通信控件MSCOMM.OCX。利用WindowsAPI函数是通过调用读写等函数来操作串口。两种比较,使用MSCOMM.OCX控件编程方便,具有更完善的发送和接收功能。这里采用了MSCOMM.OCX控件。本文根据杭州某包装材料公司原料配料控制系统为背景,简述实现计算机与三菱FX系列PLC通信的实现过程。二、硬件与选型日本三菱公
4、司是国际著名的工厂自动化设备制造商,工业可编程控制器在国内市场占有率一直保持前列。项目选用三菱FX2N-64MR型PLC,SC-09电缆作为计算机与PLC通信的连线。连接电缆的9针端连接在计算机串口上,另一端连接在PLC的RS-422编程口。系统框图如图一所示:SC-09电缆计算机三菱PLC图一三、软件编程软件设计主要包括PLC梯形图设计和计算机VB程序、数据库设计。计算机操作系统为Windows98,编程语言用VisualBasic6.0,数据库选用Access97,梯形图程序在三菱PLC编程软件GPPWIN软件环境设计。上位机软件实现计算机对PLC内部数据读取、写入参数和保存数据到数据库。
5、三菱FX2N型PLC编程口通信协议如下:命令命令字控制元件备注读元件0X,Y,M,S,T,C,D读字/位元件状态写元件1X,Y,M,S,T,C,D写字/位元件状态置位7X,Y,M,S,T,C位元件置位复位8X,Y,M,S,T,C位元件复位通信格式:起始符命令字首地址数据区结束符和校验波特率9600,偶校验,8位数据位,一位停止位。在新建工程的表单上添加MSCOMM.OCX控件,初始化程序:PrivateSubForm_Load()MSComm1.CommPort=1选择COM1口MSComm1.Settings=9600,e,7,1EndSub系统参数主画面如下图所示:图二数据读取子程序:Pu
6、blicFunctionGetData(ByValStartAddressAsString,ByValGetBytesAsInteger,ByValHex_BytesAsString)AsStringMSComm1.InputLen=GetBytes*2+4MSComm1.Output=STX+CMD_Read+StartAddress+Hex_Bytes+ETX+GetSumChk(CMD_Read+StartAddress+Hex_Bytes+ETX)传送数据组成:起始符+命令+首地址+数据位+结束符+和检验码GetData=MSComm1.InputMSComm1.InBufferCou
7、nt=0MSComm1.InputLen=0EndFunction如需读取数据,通过调用GetData子程序。参数设置程序可参考读取子程序,只是改变命令而已。Access97数据库中包含三个表单,包括参数表、记录表、报警记录表。通过如下子程序是将实际称量值(记录表)更新到数据库:PrivateSubSaveData()DimiAsIntegerDimvalidAsBooleanOnErrorResumeNextvalid=TrueData1.Recordset.AddNewData1.Recordset.Fields(dtime)=TimeSerial(OnHour,OnMinute,OnSe
8、cond)Data1.Recordset.Fields(systime)=Time系统时间Data1.Recordset.Fields(get_xl)=LF(1)小料当前称量值Data1.Recordset.Fields(get_fjs)=LF(2)方解石当前称量值Data1.Recordset.Fields(get_cs)=LF(3)长石当前称量值Data1.Recordset.Fields(get_sys)=LF(4)石英砂当前称量值Data1.Recordset.Fields(get_cj)=LF(5)纯碱当前称量值OnErrorResumeNextData1.Recordset.Upd
9、ate更新数据库记录Data1.Recordset.MovePreviousEndSub程序中,LF(i)变量对应为图二系统参数表单中实称值。保存参数子程序只是对数据库操作,程序结构可参考以上子程序。上位机与PLC通信质量的好坏,对系统的安全可靠运行影响极大,因此,编写程序时,除了在两者之间的通信协议上保持绝对一致和采取相应的容错技术外,还要考虑系统的整体容错技术,防止系统的不正常。四、结束语串行通信是目前计算机与其他设备之间通信广泛采用的方式之一,传送数据准确,程序稳定运行是系统开发的主要目的。本设计中充分利用计算机和PLC的资源,在几乎不增加设备开支的情况下成功的实现上位机与PLC之间的通
10、信。参考文献1、美国MicrosoftVisalBasic6.0Controlsreference控件参考手册2、舒继武VisualBasic中通信及应用微型机与应用,1996;3、陈小欧Windows环境下串口异步通信程序设计电子技术应用利用VB6.0实现PC与三菱PLC的通信哈尔滨李松颖本文介绍的PC与三菱FX系列PLC通信,是通过PLC的编程口与PC机的串口进行的,采用SC-09编程电缆作为计算机与PLC通信的连线。电缆的9芯D形插头连接在计算机串口上,另一端连接PLC的RS-422编程口。编写PC的通信程序可采用汇编语言、各种高级语言,也可以采用工控组态软件或直接采用PLC厂家的通信软
11、件。本文采用VB60软件,它必须依据所连接PLC的通信规程来编写通信协议,所以先简单介绍FX系列PLC的通信协议。一、FX系列PLC的通讯协议1数据传输格式FX系列PLC采用异步格式,由1位起始位、7位数据位、l位偶校验位及l位停止位组成,波特率为9600bps,字符为ASCi码。2通信命令FX系列PLC有4条通信命令,即读命令、写命令、强制通命令、强制断命令。表1中,X为输入继电器;Y为输出继电器;M为辅助继电器;S为状态元件;T为定时器;C为计数器;D为数据寄存器。3通信控制字符FZ系列PLC采用面向字符的传输规程,用到5个通信控制字符,如表2所示。4报文格式PC机向PLC发送的报文格式如
12、表3所示。其中,STX为开始标志;ETS为结束标志;CMD为命令的ASC码:SUMH、SUML为从CMD到ETX按字节求累加和,溢出不计。由于每字节十六进制数变为两字节ASC代码,故校验和为SUMH与SUMI。PLC向PC机发送的应答报文格式如表4所示。二、PC通信程序的编写1通信口初始化,MSComm控件简介:VB带有专门管理串行通讯的MSComm控件。只需设置几个主要参数就可以实现PLC与PC间的串行通讯。要完成通信必须设置MSComm的相关属性值,即通信口初始化,其步骤如下:(1)CommPort:设置或传回通信连接端口代号。(2)Settings:设置初始化参数。以字-符串的形式设置或
13、传回连接速度、奇偶校验、数据位、停止位等4个参数。(3)PortOpen:设置或传回通信连接端口的状态。(4)Input:从输入寄存器传回并移除字符。(5)Output:将一个字符串写入输出寄存器。(6)InputLen:指定由串行端口读入的字符串长度。(7)InBufferCount:传回在接收寄存器中的字符数。2通讯程序举例首先,在窗体开始设计之前,添加MSComm控件和按钮、文本框、标签等。(1)PC从PLC中读取数据假设PC要从PLC中读入从D123开始的4个字节的数据(占用两个数据寄存器:D123、D124),其报文如表5所示。根据三菱FX系列PLC编程口通信协议,地址算法为addr
14、ess=address2+1000h将地址123转换成十六进制为7Bh,因此首地址为:address=addressx2+1000h=7Bhx2+1000h=10F6h再转换成ASCII码为31h,30h,46h,36h校验和SUM=30H+31H+30H+46H+36H+30H+34H+03H=174H,溢出部分不计,故SUMH为7,SUML为4,相应的ASC码为“37H”和“34H”。PLC的应答报文格式如表6所示。(2)把数据写入PLC例如,向PLC的D123数据寄存器写入数据“1234ABCD”的报文格式如表7所示本文介绍的利用VB6O实现PC与三菱PLC通信的基本方法,切实可行,具有
15、广泛的实用价值。对初学者很有帮助。三菱FXPLC与VB通讯的实现你想了解吗?HYPERLINK/main.asp滑环电机无刷无环液阻起动器、磁控(磁饱和)软启动器、高低压电机液阻起动器与液阻调速器编辑:HYPERLINKo电机软启动网t_blank电机软启动网-HYPERLINKo电机软起动网t_blank电机软起动网发表时间:2008-11-10阅读次数:2461.硬件采用SC-09编程电缆,连接PC串口与HYPERLINK/main.aspo电机软启动网t_blankPLC编程口实现通讯。2HYPERLINK/main.aspo电机软启动网t_blankPLC编程口的通信协议简介1)、DE
16、VICEREAD(读出软设备状态值)计算机向HYPERLINK/main.aspo电机软启动网t_blankPLC发送:3具体程序说明MSComm控件简介用来提供简单的串行端口通信功能,也可以用来创建功能完备、事件驱动的高级通信工具。Mscomm控件提供了一系列标准通信命令的使用界面。使用它可以建立与串行端口的连接,通过串行端口再连接到其它设备(如调制解调器、HYPERLINK/main.aspo电机软启动网t_blankPLC),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。数据读与写采用函数input和output(1)窗口加载程序PrivateSubForm_Load()MSComm1.CommPort=1选择COM1口MSComm1.Settings=9600,e,7,1Ifmscomm1.portopen=falsethenmscomm1.portopen=trueEndSub(2)数据读取子程序:PublicFunctionGetData(ByValStartAddressAsString,ByValGetBytesAsInteger,B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024打磨岗位全职员工协议样本
- 2024年房产建筑项目总承包协议示例
- 2024年重型挂车所有权转移协议
- 2024年高端别墅买卖协议范本
- 2024年顾问协作劳动协议正式样本
- 2024年篮球场馆施工项目协议细则
- 数字化转型背景下的研究生教育治理重构研究
- 教师教育转型发展实施方案:为教育强国奠定基础
- 高低压开关柜市场需求变化及行业趋势分析
- 低空经济产业分析:趋势、市场与需求
- 如何看懂体检报告
- 《民航英语口语》课程标准
- 2023年陕西投资集团有限公司校园招聘笔试题库及答案解析
- 大一法理学的复习资料总结和考试重点
- 科目二考试成绩单
- 《锲而不舍金石可镂》-完整版课件
- 《红楼梦》考点总汇
- 人教版高一英语必修第一册-unit-3-reading-and-thinking-课件
- 创建文明城市主题班会PPT创建文明城市我们一起行动PPT课件(带内容)
- 百变扭扭棒 课件
- 复旦大学数学物理方法讲义
评论
0/150
提交评论