在工业生产中,人们常常面临着数据采集与管理。作为工厂自动化的三大支柱可编程控制器PLC(Programmable Logic Controller),由于其安全可靠,广泛的用于数据采集与控制。生产过程中,要监视PLC内部的数据与运行状况,选用市场上的人机界面或组态软件,功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用语言开发一个简易实用的通信程序。使用Visual Basic 6.0,开发串行通信程序时,有两种方法,一种是用bbbbbbs API函数,另一种是用VB支持的通信控件MSCOMM。以下介绍使用通信控件方式实现通讯
1.硬件
采用SC-09编程电缆,连接PC串口与PLC编程口实现通讯。
2.PLC编程口的通信协议简介
通信格式:
波特率9600,偶校验,8位数据位,一位停止位。 具体请参考有关资料,以下举例说明其通讯格式
1)、DEVICE READ(读出软设备状态值)
计算机向PLC发送:
3.具体程序说明
MSComm控件简介用来提供简单的串行端口通信功能,也可以用来创建功能完备、事件驱动的通信工具。Mscomm控件提供了一系列标准通信命令的使用界面。使用它可以建立与串行端口的连接,通过串行端口再连接到其它设备(如调制解调器、PLC),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。
数据读与写采用函数bbbbb和output
(1)窗口加载程序
Private Sub bbbb_Load()
MSComm1.CommPort = 1 ‘选择COM1口
MSComm1.Settings = "9600,e,7,1"
If mscomm1.portopen=false then mscomm1.portopen=true
End Sub
(2)数据读取子程序:
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)
‘传送数据组成:起始符+命令+首地址+数据位+结束符+和检验码
随着社会生产不断进步和人们生活节奏不断加快,人们对生产效率也不断提出新要求。由于微电子技术和计算软、硬件技术的迅猛发展和现代控制理论的不断完善,使机械手技术快速发展,其中气动机械手系统由于其介质来源简便以及不污染环境、组件价格低廉、维修方便和系统安全可靠等特点,已渗透到工业领域的各个部门,在工业发展中占有重要地位。本文讲述的气动机械手有气控机械手、XY轴丝杠组、转盘机构、旋转基座等机械部分组成。主要作用是完成机械部件的搬运工作,能放置在各种不同的生产线或物流流水线中,使零件搬运、货物运输更快捷、便利。
一 四轴联动简易机械手的结构及动作过程
机械手结构如下图1所示,有气控机械手(1)、XY轴丝杠组(2)、转盘机构(3)、旋转基座(4)等组成。
图1 机械手结构图
其运动控制方式为:(1)由伺服电机驱动可旋转角度为360°的气控机械手(有光电传感器确定起始0点);(2)由步进电机驱动丝杠组件使机械手沿X、Y轴移动(有x、y轴限位开关);(3)可回旋360°的转盘机构能带动机械手及丝杠组自由旋转(其电气拖动部分由直流电动机、光电编码器、接近开关等组成);(4)旋转基座主要支撑以上3部分;(5)气控机械手的张合由气压控制(充气时机械手抓紧,放气时机械手松开)。
其工作过程为:当货物到达时,机械手系统开始动作;步进电机控制开始向下运动,另一路步进电机控制横轴开始向前运动;伺服电机驱动机械手旋转到达正好抓取货物的方位处,充气,机械手夹住货物。
步进电机驱动纵轴上升,另一个步进电机驱动横轴开始向前走;转盘直流电机转动使机械手整体运动,转到货物接收处;步进电机驱动纵轴下降,到达指定位置后,气阀放气,机械手松开货物;系统回位准备下一次动作。
二 控制器件选型
为达到jingque控制的目的,根据市场情况,对各种关键器件选型如下:
1. 步进电机及其驱动器
机械手纵轴(Y轴)和横轴(X轴)选用的是北京四通电机技术有限公司的42BYG250C型两相混合式步进电机,步距角为0.9°/1.8°,电流1.5A。M1是横轴电机,带动机械手机构伸、缩;M2是纵轴电机,带动机械手机构上升、下降。所选用的步进电机驱动器是SH-20403型,该驱动器采用10~40V直流供电,H桥双极恒相电流驱动,大3A的8种输出电流可选,大64细分的7种细分模式可选,输入信号光电隔离,标准单脉冲接口,有脱机保持功能,半密闭式机壳可适应更恶劣的工况环境,提供节能的自动半电流方式。驱动器内部的开关电源设计,保证了驱动器可适应较宽的电压范围,用户可根据各自情况在10~40VDC之间选择。一般来说较高的额定电源电压有利于提高电机的高速力矩,但却会加大驱动器的损耗和温升。本驱动器大输出电流值为3A/相(峰值),通过驱动器面板上六位拨码开关的第5、6、7三位可组合出8种状态,对应8种输出电流,从0.9A到3A以配合不同的电机使用。本驱动器可提供整步、改善半步、4细分、8细分、16细分、32细分和64细分7种运行模式,利用驱动器面板上六位拨码开关的第1、2、3三位可组合出不同的状态。
2. 伺服电机及其驱动器
机械手的旋转动作采用松下伺服电机A系列小惯量MSMA5AZA1G,其额定输出50W、100/200V共用,旋转编码器规格为增量式(脉冲数2500p/r、分辨率10000p/r、引出线11线);有油封,无制动器,轴采用键槽连接。该电机采用松下公司独特算法,使速度频率响应提高2倍,达到500Hz;定位超调整定时间缩短为以往松下伺服电机产品V系列的1/4。具有共振抑制功能、控制功能、全闭环控制功能,可弥补机械的刚性不足,从而实现高速定位,也可通过外接高精度的光栅尺,构成全闭环控制,提高系统精度。具有常规自动增益调整和实时自动增益调整两种自动增益调整方式,还配有RS-485、RS-232C通信口,使上位控制器可控制多达16个轴。伺服电机驱动器为A系列MSDA5A3A1A,适用于小惯量电动机。
3. 直流电机
可回旋360°的转盘机构有直流无刷电机带动,系统选用的是北京和时利公司生产的57BL1010H1无刷直流电机,其调速范围宽、低速力矩大、运行平稳、低噪音、效率高。无刷直流电机驱动器使用北京和时利公司生产的BL-0408驱动器,其采用24~48V直流供电,有起停及转向控制、过流、过压及堵转保护,且有故障报警输出、外部模拟量调速、制动快速停机等特点。
4. 旋转编码器
在可回旋360°的转盘机构上,安装有OMRON公司生产的E6A2增量型旋转编码器,编码器将信号传给PLC,实现转盘机构的jingque定位。
5. PLC的选型
根据系统的设计要求,选用OMRON公司生产的CPM2A小型机。CPM2A在一个小巧的单元内综合有各种性能,包括同步脉冲控制、中断输入、脉冲输出、模拟量设定和时钟功能等。CPM2A的CPU单元又是一个独立单元,能处理广泛的机械控制应用问题,它是在设备内用作内装控制单元的理想产品。完整的通信功能保证了与个人计算机、其它OMRONPC和OMRON可编程终端的通信。这些通信能力使四轴联动简易机械手能方便的融合到工业控制系统中。
三 软件编程
1. 软件流程图
流程图是PLC程序设计的基础。只有设计出流程图,才可能顺利而便捷地编写出梯形图并写出语句表,终完成程序的设计。写出流程图非常关键也是程序设计要做的任务。依据四轴联动简易机械手的控制要求,绘制流程图如图2所示。
图2 软件流程图
2. 程序部分
由于论文篇幅有限,这里只列出了开始两段程序,供读者参阅,见图3。
图3 程序列表
四 结束语
四轴联动简易机械手的各个动作和状态都由PLC控制,不仅能满足机械手的手动、半自动、自动等操作方式所需的大量按扭、开关、位置检测点的要求,更可通过接口元器件与计算机组成。
PLC工业局域网,实现网络通信与网络控制。使四轴联动简易机械手能方便地嵌入到工业生产流水线中。
无需借助西门子的Simaticnet 软件,SIDirect DAS Server 可以通过标准的以太网卡访问S7 200,S7 300,S7 400 家族PLC。SIDirect DAServer可以通过DDE,FastDDE, Suibbbink, OPC协议连接bbbbbbs客户端软件,如WonderwareInTouch。
本Tech Note 一步一步详细介绍了如何配置和使用Wonderware SIDirect DA Server连接/访问S7PLC(这里,我们以S7-400 PLC 为例),以及如何用DDE/Suibbbink协议访问此DAServer。
在开始之前,请确保已满足以下条件:
1.仔细阅读并按照SIDirect DAServer的Readme文件及相关文档,来得到SIDirectDAServer所需要的系统需求,正确的安装过程,操作系统等信息。
2.安装SIDirect DAServer,如果已经安装了以前版本的SIDirectDAServer,请使用的"控制面板"中的"添加/删除程序"卸载,本Tech Note使用SIDirect DAServer1.1版。
3.安装并配置以太网卡和TCP/IP协议。
4.确认你可以"Ping"通你要连接的PLC。
注意:请仔细阅读SIDirect DAServer的在线文档关于所支持的硬件和软件部分,SIDirectDAServer只支持TCP/IP通信,不支持MPI,Profibus等其他非以太网方式。
本Tech Note假定用户具有并理解以太网,西门子S7 PLC 硬件/软件,bbbbbbs 操作系统,WonderwareFactorySuite组件,WWClinet, SIDirect DAServer的基本知识。
配置SIDirect DAServer
1.选择任何栏上的开始/程序以启动SIDirect DAServer。
2.找到包含“System Management Console” 程序的 Wonderware文件夹,并点击启动SystemManagement Console 程序。
3.在ArchestrA System Management Console(SMC)中找到“DAServerManager”树下的SIDirect DAServer。在Local节点下,DAServer名字是“ArchestrA.DASSIDirect.1”。见下图1:
图1. SMC中的DASSIDirect DAServer
4.展开ArchestrA.DASSIDirect.1,并选择“Configuration”,将出现如下“bbbbbbbbbbbeters”对话框(图2):
图2. DASSIDirect – bbbbbb bbbbbeters
◆ Device Group Update Interval: 定义Device Group的默认更新时间间隔
◆ Slow Poll Interval: 定义当连接发生问题进入“SlowPoll”模式时,DAServer查询设备的时间间隔。当通信恢复正常后,DAServer的查询间隔调整为DeviceGroup的查询间隔。
◆ Transbbbbbb to SubbbbbbbionRatio:“Transbbbbbb”是来自于DDE/SL/OPC客户端的读/写消息,“Subbbbbbbion”是有处于“需采集”状态的数据点产生的,“Subbbbbbbion”按“UpdateInterval”为间隔周期性发送。 “Transbbbbbb to SubbbbbbbionRatio”定义DAServer在发送一个Subbbbbbbion前可以发送的Transbbbbbb的大数目。它是当有多个等待中的Transbbbbbb时,Transbbbbbb和Subbbbbbbion的比例,比例的后者总是为1。默认设置为2表示Transbbbbbb和Subbbbbbbion的比例是2:1。这个比例确保当Transbbbbbb非常繁忙时,任有一定数量的Subbbbbbbion动作。例如:比例设为2, 有3个Transbbbbbb,2个Subbbbbbbion准备好,Toolkit将先发送2个Transbbbbbb,1个Subbbbbbbion,在发送1个Transbbbbbb, 1个Subbbbbbbion。
◆ Transbbbbbb Message Timeout:每个Transbbbbbb(读/写/刷新等)消息的超时设置,这个超时设置使得客户端不会由于某种原因Transbbbbbb不被发送时导致被挂起。这是一个Transbbbbbb中消息更新的大允许时间。此数字应该设置为一个单独的数据更新不应超过此时间设置。
◆ Server Protocal Timer: 因为SIDirectDAServer使用事件驱动的协议引擎,此选项无效。
◆ Diagnostic Backlog Size: 定义在“TransbbbbbbDiagnostic”根上可显示的大的Transbbbbbb数。
◆ Poke Mode: 有以下有效模式:
- Control 保持写数据的顺序不改变,并且不合并Transbbbbbb。
- Transbbbbbb 使用保留要写的第1,第2和后一个数据的合并方式保持写数据的顺序。
- Optimization 不保持写数据的顺序,并且合并写数据的Transbbbbbb,只写入后一个要写的数据。
◆ Case Sensitive: 控制DAServer按大小写顺利扫描数据项和Device Group。
◆ Device Group Cache: 此参数保留将来使用。
◆ Simulation Mode: 此设置在此SIDirect DAServer中无效。
◆ System Items:此参数控制系统数据点是否出现在浏览窗口中,是否做为DAServer数据采集接口的有效数据项。
◆ Unique Device Groups: 此参数控制是否检查DeviceGroup在整个DAServer中的唯一性。
5.右键点击“Configuration”图标。
6.在菜单中选择“Add PortCpS7 bbbbbb”。
7.右键点击“New_PortCp_000”并选择“Add S7Cpbbbbbb”,出现如下S7参数设置对话框(图3):
图3. S7 CP通信参数
◆ Network Address:输入PLC的IP地址,在此例子中,PLC的IP地址是192.168.10.41
◆ Local TSAP: 定义本地站的传输服务访问点,为数字定义设备,位数字为0,推荐设置为01.00
◆ Remote TSAP: 定义PLC的传输服务访问点。
◆ Remote Rack No.: 输入10进制机架号。
◆ Remote Slot No.: 输入10进制的CPU槽号。在此TechNote中,机架号设为0,CPU槽号设为3(电源模块占2个槽,CPU槽号为3)。
◆ Connection Resource: 从下拉框中选择16进制的连接资源。
8.选择“Device Group”属性页。
9.右键点击“Device Group”对话框中的空白地方,添加新的Device Group(类似主题名)到DeviceGroup对话框中。如下图4所示:
图4. Device Group 对话框
10.选择并用右键点击默认名Topic_0, 把它重新命名成一个有意义的名字,如S7PLC,如图5所示:
PLCDeviceGroup>
图5. S7PLC Device Group
11.在左面的树形结构图中,右键点击ArchestrA.DASSIDirect.1并从子菜单中选择“ActivateServer”来启动此DAServer,ArchestrA.DASSIDirect.1旁边的图标将由红变成绿,如下图6所示:
图6. SIDirect DA Server已激活
测试此 DASSIDirect Server
DASSIDirectServer已经准备就绪,下面做一个快速的通信测试来验证和我们可以和PLC的连接。
1.点击“开始/运行”并键入WWClient启动Wonderware WWClient程序。
2.从主菜单上选择“Connection/Create”,将出现“Create Connection”对话框。
3.输入正确的信息,如图7所示:
◆ Node: 此处为空白,因为DASSIDirectServer和WWClient在同一台计算机中。否则,输入运行DAServer的机器的名字。
◆ Application: DASSIDirect, SIDirect DAServer的应用程序名。
◆ Topic: S7PLC,我们刚才在DASSIDirect的DeviceGroup对话框中新建的Device Group。
◆ Connection Type: IOT,在这里,我们使用Suibbbink协议。
图7. Create Connection 对话框
4.依此点击“Create”,“Done”。
5.在主菜单上选择“Item”。
6.输入已知正常工作的PLC寄存器地址。
7.下图显示了WWClient成功取得S7PLC数据项MB90,在Item输入框中的输入MB90,点击AdviseEx注册并开始获取此数据项,如果连接S7PLC的以太网工作正常的话,你会看到从MB90寄存器中取得的数据,如图9,10所示:
图9. Item
图10. WWClient显示MB90的值
制作好你所需要的大窗口bbbbbbName,并假定窗口大小为(Width, Height)。
此TechNote由Wonderware 中国技术支持部门发布。
这是由Wonderware中国的技术支持写的有关Wonderware产品的技术信息,供中国地区的分销商,系统集成商以及终用户参考。此技术信息并不包括在Wonderware公司提供的KBCD中,但使用者应参看Wonderware公司KBCD中的Termsof Use,获取并保证接受其规定的使用者应遵守的相关约定。