西门子6SL3330-7TE35-0AA3技术参数
作为工厂自动化的三大支柱可编程控制器PLC(Programmable Logic Controller),由于其,广泛的用于数据采集与控制。生产过程中,要监视PLC内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用高级语言开发一个简易实用的通信程序。本文介绍了VB 进行串口通信的各种基本方式和三菱可编程控制器之间的通信的程序设计,重点介绍了利用MSCOMM.OCX进行串行通信的设计方法。
一、引言
在工业生产中,人们常常面临着数据采集与管理。作为工厂自动化的三大支柱可编程控制器PLC(Programmable Logic Controller),由于其,广泛的用于数据采集与控制。生产过程中,要监视PLC内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用高级语言开发一个简易实用的通信程序。微软公司推出的Visual Basic 6.0,开发串行通信程序时,有两种方法,一种是用bbbbbbs API函数,另一种是用VB支持的通信控件MSCOMM.OCX。利用bbbbbbs API函数是通过调用读写等函数来操作串口。两种比较,使用MSCOMM.OCX控件编程方便,具有更完善的发送和接收功能。这里采用了MSCOMM.OCX控件。
本文根据杭州某包装材料公司原料配料控制系统为背景,简述实现计算机与三菱FX系列PLC通信的实现过程。
二、硬件与选型
日本三菱公司是国际的工厂自动化设备制造商,工业可编程控制器在国内市场占有率一直保持**。项目选用三菱FX2N-64MR型PLC,SC-09电缆作为计算机与PLC通信的连线。连接电缆的9针端连接在计算机串口上,另一端连接在PLC的RS-422编程口。系统框图如图一所示:
SC-09电缆
三、软件编程
软件设计主要包括PLC梯形图设计和计算机VB程序、数据库设计。计算机操作系统为bbbbbbs98,编程语言用Visual Basic 6.0,数据库选用Access97,梯形图程序在三菱PLC编程软件GPPWIN 软件环境设计。上位机软件实现计算机对PLC内部数据读取、写入参数和保存数据到数据库。
三菱FX2N型PLC编程口通信协议如下:
波特率9600,偶校验,8位数据位,一位停止位。
在新建工程的表单上添加MSCOMM.OCX控件,初始化程序:
Private Sub bbbb_Load()
mPort = 1 '选择COM1口
MSComm1.Settings = "9600,e,7,1"
End Sub
系统参数主画面如下图所示:
数据读取子程序:
Public Function GetData(ByVal StartAddress As bbbbbb, ByVal GetBytes As Integer, ByVal Hex_Bytes As bbbbbb) As bbbbbb
MSComm1.bbbbbLen = GetBytes * 2 + 4
MSComm1.Output = STX + CMD_Read + StartAddress + Hex_Bytes + ETX + GetSumChk(CMD_Read + StartAddress + Hex_Bytes + ETX)
‘传送数据组成:起始符+命令+首地址+数据位+结束符+和检验码
GetData = MSComm1.bbbbb
MSComm1.InBufferCount = 0
MSComm1.bbbbbLen = 0
End Function
如需读取数据,通过调用GetData子程序。
参数设置程序可参考读取子程序,只是改变命令而已。
Access97数据库中包含三个表单,包括参数表、记录表、报警记录表。
通过如下子程序是将实际称量值(记录表)更新到数据库:
Private Sub SaveData()
Dim i As Integer
Dim valid As Boolean
On Error Resume Next
valid = True
Data1.Recordset.AddNew
Data1.Recordset.Fields("dtime") = TimeSerial(OnHour, OnMinute, OnSecond)
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) ‘纯碱当前称量值
On Error Resume Next
Data1.Recordset.Update ‘更新数据库记录
Data1.Recordset.MovePrevious
End Sub
程序中,LF(i)变量对应为图二系统参数表单中实称值。
保存参数子程序只是对数据库操作,程序结构可参考以上子程序。
上位机与PLC通信质量的好坏,对系统的运行影响较大,因此,编写程序时,除了在两者之间的通信协议上保持**一致和采取相应的容错技术外,还要考虑系统的整体容错技术,防止系统的不正常。
四、结束语
串行通信是目前计算机与其他设备之间通信广泛采用的方式之一,传送数据准确,程序稳定运行是系统开发的主要目的。本设计中充分利用计算机和PLC的资源,在几乎不增加设备开支的情况下成功的实现上位机与PLC之间的通信。
FXGP-WIN-C:
三菱FX系列PLC程序设计软件(不含FX3U),支持梯形图、指令表、SFC语言程序设计,可进行程序的线上更改、监控及调试,具有异地读写PLC程序功能。
GX Developer:
三菱全系列PLC程序设计软件,支持梯形图、指令表、SFC、ST及FB、Label语言程序设计,网络参数设定,可进行程序的线上更改、监控及调试,结构化程序的编写(分部程序设计),可制作成标准化程序, 在其它同类系统中使用。
GX Simulator:
三菱PLC的调试软件,支持三菱所有型号PLC(FX,AnU,QnA和Q系列),模拟外部I/O信号,设定软件状态与数值。
GX Explorer:
三菱全系列PLC维护工具,提供PLC维护必要的功能。类bbbbbbs操作,通过拖动进行程序的上传/下载,可以同时打开几个窗口监控多CPU系统的资料,配合GX RemoteService-I 使用网际网络维护功能.
GX RemoteService I :
三菱全系列PLC远程访问工具,安装在服务器上,通过网际网络/局域网连接PLC和客户。将PLC的状态发EMAIL给手机或计算机,可以通过网际网络流览器对软组件进行监控/测试。在客户机上,可使用GXExplorer软件通过网际网络/局域网进入PLC。
GX Configurator-CC:
A系列**,ccbbbb单元的设定,监控工具。用于A 系列CC-bbbb主站模块的CC-bbbb网络参数设定,*再编制顺控程序来设定参数,在软件图形输入屏幕中简单设定。可以监控, 测试和诊断CC-bbbb 站的状态 (主站/其它站) ,可以设置 AJ65BT-R2的缓存寄存器
GX Configurator-AD:
Q系列**,A/D转换单元的设定,监控工具。用于设置Q64AD、Q68ADV 和Q68ADI模数转换模块的初始化数据和自动刷新资料,不用编制顺控程序即可实现A/D模块的初始化功能。
GX Configurator-DA:
Q系列**,D/A转换单元的设定,监控工具。用于设置Q62DA、Q64DA、 Q68DAV和Q68DAI 数模转换模块的初始化及自动刷新数据。不用编制顺控程序即可实现D/A模块的初始化功能。
GX Configurator-SC:
Q系列**,串行通信单元的设定,监控工具。用于设置串行通信模块QJ71C24(N)、QJ71C24(N)-R2(R4)的条件资料。不用顺控程序即可实现1.传送控制,2.MC 协议通讯,3.无协议通讯,4.交互协议通讯,5.PLC 监视功能,6.调制解调器设置参数设定。
GX Configurator-CT:
Q系列**,高速计数器单元的设定,监控工具。用于设置QD62 、QD62E 或QD62D 高速计数模块的初始化数据和自动刷新资料,不用编制顺控程序即可实现初始化功能。
GX Configurator-PT:
Q系列**,QD70单元的设定,监控工具。用来设定QD70P4 或QD70P8 定位模块的初始化数据。省去了用于初始化资料设定的顺控程序,便于检查设置状态和运行状态。
GX Configurator-QP:
Q系列**,QD75P/DM用的定位单元的设定,监控工具。可以对QD75□□进行各种参数、定位资料的设置、监视控制状态并执行运行测试。进行(离线)预设定位资料基础上的模拟和对调试和维护有用的监视功能,即以时序图形式表示定位模块I/O 信号、外部I/O 信号和缓冲存储器状态的采样监视。
GX Configurator-TI:
Q系列**,温度输入器单元的设定,监控工具。用于设置Q64TD 或Q64RD 温度输入模块的初始化数据和自动刷新资料,不用编制顺控程序即可实现初始化功能。
GX Configurator-TC:
Q系列**,温度调节器单元的设定,监控工具。用于设置Q64TCTT、Q64TCTTBW、 Q64TCRT 或Q64TCRTBW 温度控制模块的初始化数据和自动刷新数据。
GX Configurator-AS:
Q系列**,AS-I主控单元的设定,监控工具。用于设置AS-i主模块QJ71AS92自动读出/写入的通信资料、CPU软组件存储的自动刷新设置、配置资料的注册/EEPROM保存等的软件工具。
GX Configurator-DP:
MELSEC-PLC系列**,Profibus-DP模块的设定,监控工具。用于设置Profibus-DP主站模块QJ71PB92D和A(1S)J71PB92D网络参数(包括主站参数设定、总线参数设定、从站设定等)的软件工具。使用QJ71PB92D时可以实现自动刷新功能,可以通过网络线上远程登入模块。
GX Converter:
GX Converter软件包用于将GX Developer的资料转换成Word或Excel 资料使文文件的创建简单化。把Excel资料(CSV格式)或文本资料(TXT文件)用于GPPW,把GPPW程序表和软组件注释转换为Excel资料(CSV格式)或文本资料(TXT文件).
MX Component:
MX Component支持个人计算机与可程序设计控制器之间的所有通信路径,支持VisualC++ 、Visual Basic 和Access Excel 的VBA、 bbbbbbbb。不用考虑各种通信协议的不同,只要经简单处理即可实现通信。不用连接PLC,和GX Simulator同时使用,实现调试。
MX Sheet:
MX Sheet是一种软件包,它使用Excel,不用程序设计,只要进行简单设置,即可运行可程序设计控制器系统的监视/记录/警报信息的/设置值的更改操作。将可程序设计控制器的软组件资料存储在Excel上,能够容易地收集和分析现场的品质、温度、试验结果等的资料。Excel上显示可程序设计控制器内的软组件实时状态。将可程序设计控制器内的位信息作为警报信息存储在Excel上,保存故障发生的历史记录。自动保存按照*时刻或可程序设计控制器发出触发条件Excel上显示出来的资料,可用来实现日报和试验表的制作和存储的自动化。