6ES7223-1BF22-0XA8技术支持
在工业生产中,人们常常面临着数据采集与管理。作为工厂自动化的三大支柱可编程控制器PLC(ProgrammableLogicController),由于其安全可靠,广泛的用于数据采集与控制。生产过程中,要监视PLC内部的数据与运行状况,选用市场上的人机界面或组态软件,功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用语言开发一个简易实用的通信程序。使用VisualBasic 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, ByValGetBytes As Integer, ByVal Hex_Bytes As bbbbbb) Asbbbbbb
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
一、引言
可编程控制器是将继电器控制的概念和设计思想与计算机技术及微电子技术相结合而形成的专门从事逻辑控制的微机系统。在PC系统应用中,梯形图的设计往往是主要的问题。梯形图不但沿用和发展了电气控制技术,其功能和控制指令已远远超过电气控制范畴。它不仅可实现逻辑运算,还具有算术运算、数据处理、联网通信等功能,是具有工业控制指令的微机系统。由于梯形图的设计是计算机程序设计与电气控制设计思想结合的产物,在设计方法上与计算机程序设计和电气控制设计既有着相同点,也有着不同点。本文对开关量控制系统梯形图的设计,提出了四种常用方法。
二、替代设计法
所谓替代设计法,就是用PC机的程序,替代原有的继电器逻辑控制电路。它的基本思想是:将原有电气控制系统输入信号及输出信号做为PC的I/O点,原来由继电器—接触器硬件完成的逻辑控制功能由PC机的软件—梯形图及程序替代完成。例如,电动机正反转控制电路,原电气控制线路图如图1所示。由PC控制替代后,其I/O接线图和梯形图分别如图2、3所示。
图3PC梯形图这种方法,其优点是程序设计方法简单,有现成的电气控制线路作依据,设计周期短。一般在旧设备电气控制系统改造中,对于不太复杂的控制系统常采用。
三、逻辑代数设计法
由于电气控制线路与逻辑代数有一一对应的关系,对开关量的控制过程可用逻辑代数式 表示、分析和设计。
基本设计步骤如下:
1、根据控制要求列出逻辑代数表达式。
2、对逻辑代数式进行化简。
3、根据化简后的逻辑代数表达式画梯形图。下面举一简单例子来具体说明。
某一电动机只有在三个按钮中任何一个或任何两个动作时,才能运转,而在其他任何情况下 都不运转,试设计其梯形图。
将电动机运行情况由PC输出点0500来控制,三个按钮分别对应PC输入地址为A、B、C。根据题意,三个按钮中任何一个动作,PC的输出点0500就有输出。其逻辑代数表达式为当三个按钮中有任何两个动作时,输出点0500的逻辑代数表达式为因两个条件是“或”关系,电动机运行条件应该为简化该式得
图4 电动机运行情况梯形图
根据逻辑代数表达式,画梯形图,如图4所示。 图4利用这种方法设计,大的特点是可以把很多的逻辑关系简化。
当然出于可靠和安全性角度考虑的冗余设计是一个问题。
四、程序流程图设计法
PC采用计算机控制技术,其程序设计同样可遵循软件工程设计方法,程序工作过程可用流程图表示。由于PC的程序执行为循环扫描工作方式,与计算机程序框图不同点是,PC程序框图在进行输出刷新后,再重新开始输入扫描,循环执行。
下面以全自动洗衣机控制为例,说明这种设计方法的应用。
画出洗衣机工艺流程图,如图5所示。
图5洗衣机工艺流程图
第二步选择PC机型,设置I/O点编号。其I/O点编号分配如下:
I/O点分配 计时/计数器分配
00起动开关 T600正转计时
01停止开关 T601暂停计时
02手动排水开关 T602反转计时
03高水位开关 T603暂停计时
04低水位开关 T604脱水计时
20起动洗衣机 T605报警计时
21进水 C606洗涤次数
22正转洗涤 C607脱水次数
23反转洗涤
25排水
26脱水
27停止、报警
第三步,根据流程图,设计梯形图,如图6所示
图6洗衣机梯形图
五、功能模块设计法
根据模块化设计思想,可对系统按控制功能进行模块划分,依次对各控制的功能模块设计梯 形图。
例如,在PC电梯控制系统中,对电梯控制按功能可分为:厅门开关控制模块,选层控制模块,电梯运行控制模块,呼梯显示控制模块等。按电梯功能进行梯形图设计,可使电梯相同功能的程序集中在一起,程序结构清晰,便于调试,还可以根 据需要灵活增加其他控制功能。
当然,在设计中要注意模块之间的互相影响时、时序关系,以及联锁指令的使用条件。同一种控制功能可有不同的软件实现方法,应根据具体情况采用简单实用的方案,并应充分利用 不同机型所提供的编程指令,使程序尽量简洁。
六、结束语
本文介绍了PC梯形图的四种设计方法,还有其他一些方法,如经验法。在系统设计中对不同的环节,可根据具体情况,采用不同的设计方法。通常在全局上采用程序框图及功能模块方法设计;在旧设备改造中,采用替代法设计;在局部或具体功能的程序设计上,采用逻辑代数法和经验法。
以松下FP1系列PLC和A4系列伺服驱动为例,编制控制伺服电机定长正、反旋转的PLC程序并设计外围接线图,此方案不采用松下的位置控制模块FPG--PP11\12\21\22等,而是用晶体管输出式的PLC,让其特定输出点给出位置指令脉冲串,直接发送到伺服输入端,此时松下A4伺服工作在位置模式。在PLC程序中设定伺服电机旋转速度,单位为(rpm),设伺服电机设定为1000个脉冲转一圈。PLC输出脉冲频率=(速度设定值/6)*100(HZ)。假设该伺服系统的驱动直线定位精度为±0.1mm,伺服电机每转一圈滚珠丝杠副移动10mm,伺服电机转一圈需要的脉冲数为1000,故该系统的脉冲当量或者说驱动分辨率为0.01mm(一个丝);PLC输出脉冲数=长度设定值*10。
以上的结论是在伺服电机参数设定完的基础上得出的。也就是说,在计算PLC发出脉冲频率与脉冲前,先根据机械条件,综合考虑精度与速度要求设定好伺服电机的电子齿轮比!大致过程如下:
机械机构确定后,伺服电机转动一圈的行走长度已经固定(如上面所说的10mm),设计要求的定位精度为0.1mm(10个丝)。为了保证此精度,一般情况下是让一个脉冲的行走长度低于0.1mm,如设定一个脉冲的行走长度为如上所述的0.01mm,于是电机转一圈所需要脉冲数即为1000个脉冲。此种设定当电机速度要求为1200转/分时,PLC应该发出的脉冲频率为20K。松下FP1---40T的PLC的CPU本体可以发脉冲频率为50KHz,完全可以满足要求。
如果电机转动一圈为100mm,设定一个脉冲行走仍然是0.01mm,电机转一圈所需要脉冲数即为10000个脉冲,电机速度为1200转时所需要脉冲频率就是200K。PLC的CPU输出点工作频率就不够了。需要位置控制专用模块等方式。
有了以上频率与脉冲数的算法就只需应用PLC的相应脉冲指令发出脉冲即可实现控制了。假设使用松下A4伺服,其工作在位置模式,伺服电机参数设置与接线方式如下:
一、按照伺服电机驱动器说明书上的“位置控制模式控制信号接线图”接线:
pin3(PULS1),pin4(PULS2)为脉冲信号端子,PULS1连接直流电源正极(24V电源需串连2K左右的电阻),PULS2连接控制器(如PLC的输出端子)。
pin5(SIGN1),pin6(SIGN2)为控制方向信号端子,SIGN1连接直流电源正极(24V电源需串连2K左右的电阻),SIGN2连接控制器(如PLC的输出端子)。当此端子接收信号变化时,伺服电机的运转方向改变。实际运转方向由伺服电机驱动器的P41,P42这两个参数控制,pin7(com+)与外接24V直流电源的正极相连。pin29(SRV-0N),伺服使能信号,此端子与外接24V直流电源的负极相连,则伺服电机进入使能状态,通俗地讲就是伺服电机已经准备好,接收脉冲即可以运转。
上面所述的六根线连接完毕(电源、编码器、电机线当然不能忘),伺服电机即可根据控制器发出的脉冲与方向信号运转。其他的信号端子,如伺服报警、偏差计数清零、定位完成等可根据您的要求接入控制器构成更完善的控制系统。
二、设置伺服电机驱动器的参数。
1、Pr02----控制模式选择,设定Pr02参数为0或是3或是4。3与4的区别在于当32(C-MODE)端子为短路时,控制模式相应变为速度模式或是转矩模式,而设为0,则只为位置控制模式。如果您只要求位置控制的话,Pr02设定为0或是3或是4是一样的。
2、Pr10,Pr11,Pr12----增益与积分调整,在运行中根据伺服电机的运行情况相应调整,达到伺服电机运行平稳。当然其他的参数也需要调整(Pr13,Pr14,Pr15,Pr16,Pr20也是很重要的参数),在您不太熟悉前只调整这三个参数也可以满足基本的要求. 。
3、Pr40----指令脉冲输入选择,默认为光耦输入(设为0)即可。也就是选择3(PULS1),4(PULS2),5(SIGN1),6(SIGN2)这四个端子输入脉冲与方向信号。
4、Pr41,Pr42----简单地说就是控制伺服电机运转方向。Pr41设为0时,Pr42设为3,则5(SIGN1),6(SIGN2)导通时为正方向(CCW),为反方向(CW)。Pr41设为1时,Pr42设为3,则5(SIGN1),6(SIGN2)断开时为正方向(CCW),为反方向(CW),正、反方向是相对的,看您如何定义了,正确的说法应该为CCW,CW 。
5、Pr48、Pr4A、Pr4B----电子齿轮比设定。此为重要参数,其作用就是控制电机的运转速度与控制器发送一个脉冲时电机的行走长度。
其公式为:
伺服电机每转一圈所需的脉冲数=编码器分辨率 × Pr4B/(Pr48 ×2^Pr4A)
伺服电机所配编码器如果为:2500p/r5线制增量式编码器,则编码器分辨率为10000p/r
如您连接伺服电机轴的丝杆间距为20mm,您要做到控制器发送一个脉冲伺服电机行走长度为一个丝(0.01mm)。计算得知:伺服电机转一圈需要2000个脉冲(每转一圈所需脉冲确定了,脉冲频率与伺服电机的速度的关系也就确定了) 。
三个参数可以设定为:Pr4A=0,Pr48=10000,Pr4B=2000,约分一下则为:Pr4A=0,Pr48=100,Pr4B=20。
从上面的叙述可知:设定Pr48、Pr4A、Pr4B这三个参数是根据我们控制器所能发送的大脉冲频率与工艺所要求的精度。在控制器的大发送脉冲频率确定后,工艺精度要求越高,则伺服电机能达到的大速度越低。松下FP1---40T 型PLC的程序梯型图如下: