第一篇:VB实现PC与欧姆龙PLC通讯的串口编程
Private Sub Form_Load()
Dim i As Integer'OPEN COM1
If ComTrue(1)= 0 Then
If ComOpen(1, 38400, 7, 1, 1, “sjh”)= 1 Then 'MsgBox(“已注册”)'sjh为你的注册账号Call SetDelayNum(64)
End If
End If
jisu
jisu1
jisu2
End Sub
第二篇:VB中串口通讯的实现
VB中串口通讯的实现.txt VB中串口通讯的实现
------------------
一、概述
串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC间的通讯以及PC和单片机之间的通讯之中。提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。
实际上,只要我们借助相关ActiveX控件的帮助,即使是在底层操作一向不被人看好的VB中,一样能够实现串口通 讯,甚至其实现方法和C、汇编相比,要更加快捷方便。下面,笔者就介绍一下在VB中实现串口通讯的方法。
在Visual Basic中有一个名为Microsoft Communication Control(简称MSComm)的通讯控件。我们只要通 过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。下面,笔者就简要地介绍一下
MSComm控件的使用方法。
二、MSComm控件的主要属性、事件
1、MSComm的属性
由于MSComm控件属性很多,在此笔者仅介绍与实现串口通讯密切相关的核心属性。
Commport:设置通讯所占用的串口号。如设成1(默认值),表示对Com1进行操作。
Setting:对串口通讯的相关参数。包括串口通讯的比特率,奇偶校验,数据位长度、停止位等。其默认值 是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。
Portopen:设置串口状态,值为True时打开串口,值为False时关闭串口。
Input:从输入寄存器读取数据,返回值为从串口读取的数据内容,同时输入寄存器将被清空。
Ouput:发送数据到输出寄存器。
InBufferCount:设置输入寄存器所存储的字符数,当将其值设为0时,则输入寄存器将被清空。
InputMode:设置从输入寄存器中读取数据的形式。若值为0,则表示以文本形式读取;值为1,则表示以 二进制形式读取。
OutBufferCount:设置输出寄存器所存储的字符数,当将其值设为0时,则输出寄存器将被清空。
RThreshold:设置在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm事件之前要接受的字符 数。
CommEvent属性:返回最近的通讯事件或错误。通过对它具体属性值的查询,我们就可以获得通讯事件和通 讯错误的完整信息。当其值是comEvReceive时表示接收到数据。
2、MSComm的事件
除了公共事件之外,MSComm只有一个OnComm事件。当CommEvent属性值变化时将发生OnComm事件,指示发生 一个通讯事件或错误。当我们设置Rtheshold属性值为0时,将使得捕获comEvReceive事件无效。
三、串口通讯编程实例
在完成了对MSComm控件的简要介绍之后,笔者就以实际程序为例,介绍一下串口通讯的具体实现方法。
1、PC机间的串口通讯
(1)、实现方法:
A、新建一个窗体,在上面放两个Text控件、两个CommandButton控件和两个Label控件(如图1.bmp所示)。
具体见下表:
控件类型 名称 Caption属性 作用
-----------------
Text Text1-------输入所要发送的信息
Text Text2-------显示接收到的信息
CommandButton Command1 发 送---------CommandButton Command2 退 出---------
Label Label1 发送的数据 提示
Label Label2 接收的数据 提示
B、在控件工具箱中的空白处点击鼠标右键,在弹出的菜单中选择“部件”,在弹出的窗口中的控件列表中 找到“Microsoft Comm Control”,将其选中,在点击“应用”、“关闭”,在控件工具栏中就会出现一个电 话的小图标。
C、用串口线将两台电脑连接起来。您可以使用Com1对Com1的对应连接,也可以使用Com1和Com2的交叉连接。
本程序使用的是Com1对Com1的连接。
D、输入以下代码:
Private Sub Command1_Click()
'...发送数据
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = Text1.Text '...发送数据
End Sub
Private Sub Command2_Click()
'...退出
Unload Me
End Sub
Private Sub Form_Load()
'...初始化
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = “9600,n,8,1” '...设置通讯参数
MSComm1.PortOpen = True '...打开串口
End Sub
Private Sub Mscomm1_Oncomm()
'...通讯事件发生
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
Text2.Text = MSComm1.Input '...接受显示数据
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub
2、PC机与单片机之间的通讯
PC机与单片机之间的通讯被广泛的用于工业、医疗测控等领域之中。在应用中,我们通常将单片机作为“感 受器”和“效应器”,负责数据采集、响应计算机发出的指令对电路进行控制,有时也进行一些简单的运算,最后再将执行数据反馈给计算机处理。本程序将实现在PC机上输入一个0-255之间的整数,将此数据发送到单片 机,单片机接收到数据后,将数据在显示管上显示,再将此数除以2,将得数返回给PC机。(运行效果如图 3.BMP所示)其实现方法如下:
A、同PC机间通讯的实现方法A-B。
B、连接电脑和单片机。注意!由于PC机端的RS232电平与单片机端TTL的并不不匹配,故应注意电平转换。
C、在VB中输入以下代码:
Private Sub Mscomm1_Oncomm()
'...通讯事件发生
Dim indata As Variant
Dim bte(0)As Byte
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
indata = MSComm1.Input
'...注意!要通过MSComm控件发送或接收二进制数据必须用Variant类型的变量对二进
'...制Byte类型的变量进行转换!
bte(0)= AscB(indata)
Text2.Text = bte(0)
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub
Private Sub Command1_Click()
'...发送数据
Dim Num As Integer
Dim outbte(0)As Byte
Num = Val(Text1.Text)
outbte(0)= CByte(Num)
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = outbte(0)'...发送数据
End Sub
Private Sub Command2_Click()
'...退出
Unload Me
End Sub
Private Sub Form_Load()
'...初始化
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = “9600,n,8,1” '...设置通讯参数
MSComm1.PortOpen = True '...打开串口
End Sub
D、单片机工作方式置于1,比特率设为9600bit/s。在单片机上,我们只得使用汇编语言编写,并且调用中 断实现对串口数据的收发工作。源代码如下:
PUSH PSW ;将程序状态字压入堆栈
PUSH ACC ;将累加器压入堆栈
CLR EA ;关闭系统中断
CLR RI ;清除中断标志位
MOV A,SBUF ;从接收寄存器中读取数据
MOV 70H,A ;分解数据百、十、个位并显示
MOV B,#100
DIV AB
MOV 52H,A ;分解百位,送入存储器52H
MOV A,B
MOV B,#10
DIV AB
MOV 51H,A ;分解十位,送入存储器51H
MOV 50H,B ;分解个位,送入存储器50H MOV A,70H
MOV B,#2
DIV AB;将接受的数据除以2
MOV SBUF,A ;将得数发送到输出寄存器
ACALL DL1 ;延时保证数据完整发送
ACALL DL1
CLR RI ;清除中断标志位
SETB EA ;打开系统中断
POP ACC;累加器出栈
POP PSW ;程序状态字出栈
RETI ;中断程序返回
3、编程环境
以上程序在Windows 2000 Professional,Visual Basic 6.0企业版,AT89C52型单片机下调试通过。
四、总结
从以上程序可以看出,在VB中利用MSComm控件,可以快速开发出串口通讯程序,从而大大提高编程效率。
演讲稿
尊敬的老师们,同学们下午好:
我是来自10级经济学(2)班的学习委,我叫张盼盼,很荣幸有这次机会和大家一起交流担任学习委员这一职务的经验。
转眼间大学生活已经过了一年多,在这一年多的时间里,我一直担任着学习委员这一职务。回望这一年多,自己走过的路,留下的或深或浅的足迹,不仅充满了欢愉,也充满了淡淡的苦涩。一年多的工作,让我学到了很多很多,下面将自己的工作经验和大家一起分享。
学习委员是班上的一个重要职位,在我当初当上它的时候,我就在想一定不要辜负老师及同学们我的信任和支持,一定要把工作做好。要认真负责,态度踏实,要有一定的组织,领导,执行能力,并且做事情要公平,公正,公开,积极落实学校学院的具体工作。作为一名合格的学习委员,要收集学生对老师的意见和老师的教学动态。在很多情况下,老师无法和那么多学生直接打交道,很多老师也无暇顾及那么多的学生,特别是大家刚进入大学,很多人一时还不适应老师的教学模式。学习委员是老师与学生之间沟通的一个桥梁,学习委员要及时地向老师提出同学们的建议和疑问,熟悉老师对学生的基本要求。再次,学习委员在学习上要做好模范带头作用,要有优异的成绩,当同学们向我提出问题时,基本上给同学一个正确的回复。
总之,在一学年的工作之中,我懂得如何落实各项工作,如何和班委有效地分工合作,如何和同学沟通交流并且提高大家的学习积极性。当然,我的工作还存在着很多不足之处。比日:有的时候得不到同学们的响应,同学们不积极主动支持我的工作;在收集同学们对自己工作意见方面做得不够,有些事情做错了,没有周围同学的提醒,自己也没有发觉等等。最严重的一次是,我没有把英语四六级报名的时间,地点通知到位,导致我们班有4名同学错过报名的时间。这次事使我懂得了做事要脚踏实地,不能马虎。
在这次的交流会中,我希望大家可以从中吸取一些好的经验,带动本班级的学习风气,同时也相信大家在大学毕业后找到好的工作。谢谢大家!
第三篇:三菱PLC与PC上位机VB通讯
三菱PLC通讯
三菱PLC与PC上位机VB通讯
三菱PLC:FX1N + FX1N-232-BD
FX2N + FX2N-232-BD 计算机:Windows XP中文企业版 + Visual Basic 6.0中文企业版
Windows 98中文版 + Visual Basic 6.0 中文企业版
两者之间连接使用的是FX-232CAB-1电缆线(2-3,3-2,4-6(8),5-5)
一.三菱PLC的设置
三菱FX PLC在进行计算机链接(专用协议)和无协议通讯(RS指令)时均须对通讯格式(D8120)进行设定。其中包含有波特率、数据长度、奇偶校验、停止位和协议格式等。在修改了D8120的设置后,确保关掉PLC的电源,然后再打开。
此外,对于采用RS485形式1:N计算机链接的还必须对站点号(D8121)进行设定。设定的范围从00H到0FH(即0到15)。在这里对D8120采用下述设置: b15 b0 0110 1000 1000 1110 6 8 8 E 即数据长度为7位,偶校验,2位停止位,波特率为9600bps,无标题符和终结符,采用计算机链接(RS-232C),自动添加和校验码,采用专用协议格式1。同时设定站号为0。具体设定如下所示:
FX PLC进行计算机链接时可用的专用协议有两种:格式1和格式4。两种格式的差别在于是否在每一个块上添加了CR + LF,其中添加了CR + LF的是格式4。在这里采用格式1。
二.上位机程序的编制
这里采用Microsoft公司的Visual Basic 6.0中文企业版编制上位机程序。Visual Basic中提供了一个名为MSComm的通信控件便于设计串行通信的程序。MSComm控件的主要属性有: 1. CommPort属性
CommPort属性用于指定所要使用的串行端口的号码。虽然Windows操作系统可以容纳最多256个串行通信端口,不过Visual Basic的MSComm控件则仅限于16个端口。2. Settings属性
Settings属性用于设置初始化参数。以字符串的形式设置波特率、奇偶校验、数据位、停止位等4个参数。其格式为“BBBB,P,D,S”,其中BBBB表示波特率,P表示奇偶校验位检查方式,D表示数据位数,S表示停止位数。一般情况下,欧美仪器习惯使用“9600,n,8,1”当成设置值;而日本仪器则习惯使用“9600,e,7,2”作为设置值。Settings设置完成之后,所传输及接受的字符串便以此设置为准,使用RS-232通信的双方,Settings必须完全一样,彼此才能顺利地通信,否则双方将无法正确接收到彼此所传输的信号。所以,该属性的设置必须和三菱PLC中D8120的相关设置保持一致。在这里,统一采用“9600,e,7,2”的设定。
三菱PLC通讯
3. PortOpen属性
PortOpen属性用于设置通信连接端口的状态。在使用串行端口之前必须先将要使用的串行端口打开。在上位机程序中应进行如下设定: Private Sub Form_Load()'窗体载入事件 MSComm1.CommPort = 1 '选择端口号 MSComm1.Settings = “9600,e,7,2” '设置端口属性 MSComm1.PortOpen = True '打开端口 End Sub 4. Output属性
MSComm控件的Output属性提供了发送的功能,当从计算机向可编程控制器写入数据或从可编程控制器读取数据时,上位机应当先发出以下格式(格式1)的指令字符串: ENQ 站号 PC号 命令 消息等待时间 字符区域A 和校验代码
其中站号为在D8121中的设定值,这里是:00,PC号对于FX系列为:FF。
因为ENQ,ACK,NAK等通信控制字符是不可见字符,所以先用Chr函数对其进行赋值: ENQ=Chr(5)ACK=Chr(6)NAK=Chr(&H15)然后在上位机程序中写入以下代码即可发出指令:
MSComm1.Output=ENQ &“00FF<命令><消息等待时间><字符区域A><和校验代码>” 5. Input属性
与Output属性相反,Input属性提供了接收数据的功能。它将对方传到输入缓冲区中的数据读进程序中,并清除缓冲区中已被读取的数据。
a.如果是从计算机向可编程控制器写入数据时,接收到从可编程控制器返回的应该是以下格式的字符串:
ACK 站号 PC号
或者
NAK 站号 PC号 错误代码
前一种表示可编程控制器已经正确接收到从计算机发来的指令,后一种表示可编程控制器未正确接收到从计算机发来的指令。
b.如果是从计算机向可编程控制器读取数据时,接收到从可编程控制器返回的应该是以下格式的字符串:
STX 站号 PC号 字符区域B ETX 和校验代码 或者 NAK 站号 PC号 错误代码
如果要连续读取数据可以利用Timer控件。将Output和Input放在Timer控件的Timer事件中即可。程序会以Timer控件的Interval属性中设置的间隔去发送指令和接收数据。对于MSComm控件的其他一些属性使用VB的默认值即可。
在串行通信传输的应用中,经常使用的Visual Basic中的字符串处理函数如下: Chr函数:返回含有特定ANSI或DBCS字符码的字符串。Asc函数:返回字符串第一个字符的ANSI或DBCS字符码。
Len函数:返回以字符数为单位的字符串长度。
Mid函数:取得字符串中特定数量的字符,可指定开始获取的位置和长度。Left函数:取得字符串的左边固定字符数的字符串。
Right函数:取得字符串的右边固定字符数的字符串。
Val函数:把字符串转换为数值,可以将8进制或16进制的字符串转换为10进制。Hex函数:返回以十六进制数值表示的字符串。
三菱PLC通讯
RS指令应用一
三菱PLC与计算机利用RS指令进行通讯(通讯手册9-14例)三菱PLC:FX1N + FX1N-232-BD 计算机:Windows XP中文企业版 + Visual Basic 6.0中文企业版
Windows 98中文版 + Visual Basic 6.0中文企业版
两者之间连接使用的是FX-232CAB-1电缆线(2-3,3-2,4-6(8),5-5)
一.三菱PLC的设置
三菱FX PLC在进行计算机链接(专用协议)和无协议通讯(RS指令)时均须对通讯格式(D8120)进行设定。其中包含有波特率、数据长度、奇偶校验、停止位和协议格式等。在修改了D8120的设置后,确保关掉PLC的电源,然后再打开。在这里对D8120采用下述设置: b15 b0 0000 0100 1000 1111 0 4 8 F 即数据长度为8位,偶校验,2位停止位,波特率为9600bps,无标题符和终结符,没有添加和校验码,采用无协议。PLC程序如下:
二.上位机程序的编制
完整程序代码及注释如下:
Private Sub cmd1_Click()
'发送按钮
lbl1.Caption = “" If txt1.Text = ”“ Then
'若发送数据栏中未键入指令则提示键入指令 lbl1.Caption = ”Please input data“ Else MSComm1.Output = txt1.Text
'发送指令 Timer1.Enabled = True
'触发延时接收 End If
三菱PLC通讯
End Sub Private Sub Form_Load()
'窗体载入事件 MSComm1.CommPort = 1
'选择端口号 MSComm1.Settings = ”9600,e,8,2“ '设置端口属性 MSComm1.PortOpen = True
'打开端口 End Sub
Private Sub Timer1_Timer()
'延时500ms接收 NAK = Chr(&H15)If MSComm1.InBufferCount > 0 Then txt2.Text = ”“ a = MSComm1.Input txt2.Text = a
'在接收数据栏中显示接收到的数据 Else lbl1.Caption = ”No response" End If Timer1.Enabled = False End Sub
三菱PLC通讯
RS指令应用二
三菱PLC与仪表之间通讯
三菱PLC:FX1N + FX1N-232-BD 仪表(称重器)
两者之间连线该仪表仅提供3线式的简化RS-232C口,即只有:RXD,TXD和GND,于是采用2-3,3-2,5-5的三线接法。
1. 对D8120进行设置并使其与仪表中的设置一致,对其中的控制线设置成使用无硬件握手方式,即(b12,b11,b10)=(0,0,0)。根据仪表说明书上对通讯的要求,设置如下:
b15
b0 0000 0000 1000 0110
0 0 8 6 2. 根据仪表说明书所述,该种仪表有两种工作方式:连续发送和指令状态。这里设置成指令状态,即仪表根据发来的指令返回相应的数据。在此使用READ指令,根据指令协议,输入的指令必须以
注:发送数据点数和接收数据点数必须按指令协议进行设置,否则通讯不能正常进行。PLC程序如下:
三菱PLC通讯
参考资料
1.三菱FX通讯用户手册(RS-232C,RS485)2.《Visual Basic与RS-232串行通信控制(最新版)》清华大学出版社
第四篇:对编写单片机与欧姆龙PLC串口通信遇到问题做一些小结
对编写单片机与欧姆龙PLC串口通信遇到问题做一些小结
2011-07-15 11:28:31|分类:|标签: |字号大中小 订阅
1,程序发的数据包太多了,并且数据包的定义是RAM的,很容易造成单片机的RAM不够,因为单片机默认的RAM是128个字节,不过可以扩展高的128个字节,范围在80H-FFH,定义是这样定义的,char idata
XX[]:
如果这样不够的话就只能在想办法来解决这个问题,找一些规律啊,或是改成查表的形式,定义成code 类
型:uchar code XX[]:
2.程序中的要对一些数据进行掉电保存,我这里用到了单片机内部自带的EEROM,在编写程序中也遇到
一些问题,只能保存一个数据,后面:后面调了一下程序:发现一个问题,就是每个对数据进行更新的话,都要对你定义的所以地址的内
容进行,然后在写入,单对某个地址的话就是不行,:
//=======================对保存的四个数据位进行清除扇区
Sector_Erase(add1);
Sector_Erase(add2);
Sector_Erase(add3);
Sector_Erase(add4);
_nop_();_nop_();_nop_();//===小延时一下
//=====================写入要保存的数据位,也是一次要保存好4个数据,不能单一进行了,不然就
会只能保存一个数据
Byte_Program(add1,key_count);
Byte_Program(add2,(char)CLAMP_flag);
Byte_Program(add3,(char)CONV_flag);
Byte_Program(add4,(char)MODE_flag);
3,我这里的PLC用的通信协议是:9600BPSN 7 2
也就是:一个起启位,7个数据位,两个停止位,无校验的形式;
这个我在单片机中用的通信协议是:9600BPSN 8 1
也就是:一个起启位,8个数据位,一个停止位,无校验的形式;
这些两个协议就不对了,哪就要去兼容了,根据数据的原理,我们只在发的数据的最高位是1(也就是一
个停止位)就可以兼容这种PLC的通信协议的形式了:
第五篇:欧姆龙PLC与变频器的设计
绪 论
可编程控制器(PLC)是在计算机技术、通信技术和继电器控制技术的发展基础上开发出来的,现已广泛应用于工业控制的各个领域。它以微处理器为核心,用编写的程序进行逻辑控制、定时、计数和算术运算等,并通过数字量和模拟量的输入/输出来控制机械设备或生产过程。
如今,PLC在我国各个工业领域中的应用越来越广泛。在就业竞争日益激烈的今天,掌握PLC设计和应用是从事工业控制研发技术人员必须掌握的一门专业技术。
任何生产机械电气控制系统的设计,都包括两个基本方面:一个是满足生产机械和工艺的各种控制要求,另一个是满足电气控制系统本身的制造、使用以及维修的需要。因此,电气控制系统设计包括原理设计和工艺设计两个方面。前者决定一台设备使用效能和自动化程度,即决定着生产机械设备的先进性、合理性,而后者决定着电气控制设备生产可行性、经济性、外观和维修等方面的性能。
在现代控制设备中,机-电、液-电、气-电配合得越来越密切,虽然生产机械的种类繁多,其电气控制设备也各不相同,但电气控制系统的设计原则和设计方法基本相同。
在最大限度满足生产设备和生产工艺对电气控制系统要求的前提下,力求运行安全、可靠,动作准确,结果简单、经济,电动机及电气元件选用合理,操作、安装、调试和维修方便。
要完成好电气控制系统的设计系统,除要求我们掌握必要的电气设计基础知识外,还要求我们必须经过反复实践,深入生产现场,将我们所学的理论知识和积累的经验技术应用到设计中来。本次课程设计正是本着这一目的而着手实施的实践性环节,它是一项初步的模拟工程训练。通过这次课程设计,我感到更深地了解一般电气控制系统的设计要求、设计内容和设计方法。
目录
课程设计任务书-------------1 绪论-----------------------2 课程设计内容---------------5 一.设计要求---------------5 二.设计任务和目的---------5 三.课题要求---------------5 四.控制要求---------------5 五.总体设计方案-----------6 六.硬件部分设计-----------9 七.软件部分设计
-----------13
八.调试过程和结果
---------17
心得体会------------------18 参考文献------------------19
课程设计内容
一.设计要求
1.确定控制方案,选择PLC和变频器及电动机型号。2.画出电气控制线路原理图。3.设计程序
4.完成PLC控制系统梯形图软件的编制任务。
5.在实验室条件下,通过试验调试初步验证其程序的正确性。
二.设计任务和目的
1.了解PLC控制变频调速系统。
2.了解OMRON-CS系列CPU加CS1W-MAD44模拟量I/0模块和ID模块。
3.了解电气控制系统设计的基本原则、内容与一般步骤。掌握PLC控制变频调速系统调试基本过程及方法。
三.课题要求
1.按题意要求,画出PLC端子接线图及控制梯形图;
2.完成PLC端子接线工作,并利用编程器输入梯形图控制程序,完成调试;
3.完成课程设计说明书
电气控制系统设计的基本原则:在最大限度满足生产设备和生产工艺对电气控制系统要求的前提下,力求运行安全、可靠、动作准确、结构简单、经济、电动机及电气元件选用合理,操作、安装、调试和维修方便。
四.控制要求
1.变频调速器受0~10V输入电压控制; 0V输出频率为0HZ,对应同步转速为0 r/min; 5V输出频率为18HZ,对应同步转速为1500 r/min; 10V输出频率为36HZ,对应同步转速为3000 r/min; 输入电压与输出频率按线性关系变化。
2.要求输出转速按函数变化,请编写梯形图控制程序,并完成调试。
3.改变输出转速~时间的变化函数,重复上述过程.五.总体设计方案
本次设计是实现控制变频调速系统,选用PLC和变频器的组合可完成数字量的输入,实现模拟量和数字量的输出控制。可以通过对频率的调节来实现对速度的控制,使得速度变化更加平滑和实现精确调速。
1.选择机型 本次设计PLC控制变频调速系统设计系统中可以用OMRON-CPM2A PLC加模拟量扩展单元,也可以用OMRON-CS系列CPU加CS1W-MAD44模拟量I/0模块.在这里选用OMRON-CS系列CPU加CS1W-MAD44模拟量I/0模块和ID模块.变频器采用欧姆龙公司的变频器,电机选择380V,3000W,3000r/min。
2.确定系统控制结构
由PLC和变频器组成的开环控制系统,模拟量输入端由两输入,开始与停止按钮;PLC输出端是从0—10V的模拟量作为变频器的输入。
实现如下控制:
0V输出频率为0Hz,对应同步转速为0r/min;5V输出频率为18Hz,对应同步转速为1500r/min;10V输出频率为36Hz,对应同步转速为3000r/min。
当PLC模拟量输出0—10V变化时,变频器输出频率为36Hz;电机经过20s速度由0—3000r/min;电机以最大速度运行10s,PLC模拟量输出由10V将到5V,变频器输出频率为18Hz,对应同步转速降为1500 r/min经历10s达到一定值速度运行20s后,PLC模拟量输出由5V降到0V,变频器输出为0Hz,电机转速为0r/ min。
3.系统流程图
5.设计步骤
(1)使用PLC的OD模块的两个输入点作为系统的启动和停止信号的输入点;
(2)使用PLC的ID模块的一个输出点作为使电机正转启动的输出信号,接到变频器的S0端子上;
(3)连接CS1W-MAD44模拟量I/0模块的A1+、A2-至变频器的电压输入端;
(4)调节变频器使其输出频率受模拟量输入电压控制;(5)然后编制输出按时间函数循环的梯形图程序;(6)最后调试并运行。
六.硬件部分设计 1.CS1W-MAD44模拟量I/0模块图
2.CS1W-MAD44模拟量I/0功能块
3.模拟量输出回路
4.输出规格
如果设置值超过下面提供的规定,将发生输出设置错误,并将输出有输出保持功能规定的输出量。
根据设计要求选取输出范围:0~10 V: 5.标度转换
输出范围:0~10V所对应的16进制数为:0000H~0FA0H 6.模拟量输出接线图
7.数据交换概要
数据通过特殊I/O单元区域(用来操作单元的数据)和特殊I/O单元DM区域(用来进行初始设置的数据)在CPU单元和CS1W-MAD44模拟量I/O单元之间交换。
8.I/O刷新数据
模拟输入转换值,模拟输出设置值,和其它用来操作单元的数据根据单元号在CPU单元的特殊I/O单元区域里分配,并在I/O刷新过程中交换.9.固定数据
单元的固定数据,如模拟量输入信号范围和模拟量输出信号范围,根据单元号在CPU单元的特殊I/O单元DM区域里分配,并在电源接通或单元重启动时交换。
10.设置单元号开关
每个模拟量I/O单元占据的特殊I/O单元区域和特殊I/O单元DM区域字地址是通过单元前板上的单元号开设置的。在此系统中单元号设置成4.11.模拟量I/0模块的软件设置过程
(1)根据下表,特殊I/0单元域地址CIO2040-CIO2049, 特殊I/0单元DM区域地址D20400-D20499.(2)根据系统原理接线图,A1 A2电压输出1和CIO区中转换可用字表设置2040为: 0001H
(3)根据输入使用设置表,设置D20400为: 0001H 范围表,设置D20401为: 0001H
(4)根据输入信号范围表,设置D20401为: 0001H 序的1~3条完成。
上面的所有设置在程序的1~3条完成。
七.软件部分设计
系统的软件设计是根据系统给定的时间函数运行的,所以软件的设计主要是以时间原则来设计。
1.程序的主体主要由以下三部分组成(1)控制字的设置(2)时间段设计(3)数据的增减 2.I/0分配表
3.系统设计程序
PLC梯形图 K “http://ruiweihorse.blog.163.com/album/prevPhoto.do?photoId=_fks_43YmJ06-50h723evuB_7gM2tF9GrWAcW”K “http://ruiweihorse.blog.163.com/album/prevPhoto.do?photoId=_fks_43YmJ06-50i31WL8I2KymJ2QGojPa***h”LD
启动按钮
K “http://ruiweihorse.blog.163.com/album/prevPhoto.do?photoId=_fks_43YmJ06-50i31WL8I2KymJ2QGojPa***h”LD
启动按钮
LD
启动按钮 4.程序助记符
LD
启动按钮 LD
停止按钮 KEEP(011)
启动保持 LD
启动保持
MOV(021)#000F 2040
// 转换可用位置1 LD
启动保持
MOV(021)#000F D20400 // 输出使用位置1 LD
启动保持 MOV(021)#0055 D20401 // 输出信号范围置0101.0-10V LD
启动保持 ANDNOT T0004
@MOV(021)#0000 D0
// 一个循环开始时置#0000 LD
启动保持
MOV(021)D0 2041
// 送D0 值至输出通道 LD
启动保持 ANDNOT T0004
TIM 0000#0200
// 时间变化流程 TIM 0001 #000 TIM 0002 #0400 TIM 0003 #0600 TIM 0004 #0650
LD
启动保持 AND P_0_02s ANDNOT T0000
@+(400)D0 #0004 D0
// D0值增加,使输出值连续增加 LD
启动保持 AND P_0_02s AND T0001 ANDNOT T0002
@-(410)D0 #0004 D0 LD
AND P_0_02s AND T0003 ANDNOT T0004
@-(410)D0 #0008 D0 LD
OUT 0.00
END(001)
// D0值减小,使输出值连续减小
启动保持
// D0值减小,使输出值连续减小
启动保持
// 变频器正转启动信号
5.程序说明
第0条:起动和停止信号,用KEEP保持在2100.00中,表示程序启动运行。
第1条:程序启动运行过程中,根据接线图A1 A2电压输出1和CIO区中转换可用字表设置2040为: 000FH
第2条:程序启动运行过程中,根据输入使用设置表设置D20400为: 000FH
第3条:程序启动运行过程中,根据输入信号范围表设置D20401为: 0055H
第4条:程序启动时并且每个循环的开始时D0置#0000,所以输出电压每次都是从0V开始
第5条:只要是在运行过程中,在程序每次扫描过程中D0中的值置入2040通道中转换成电压输出。
第6条:程序启动运行过程中,每次循环中设置成五个时间段T0000—T0004,T0004为复位信号。
第7条:程序启动运行过程中,从0—20秒,D0中的数在每个0.02秒脉冲的上升沿时加#0004,则20秒时刚好D0值为#0FA0,即10V。第8条:程序启动运行过程中,从30—40秒,D0中的数在每个0.02秒脉冲的上升沿时减#0004,则10秒后刚好D0值为#07D0,即为5V。
第9条:程序启动运行过程中,从60—65秒,D0中的数在每个0.02秒脉冲的上升沿时减#0008,则5秒时刚好D0值减为#0000,即0V。
第10条:程序启动运行过程中电机正转信号保持为ON。第11条:程序结束标志。
八.调试过程及结果
调试过程:
1.先将PLC程序传入OMRON-CS PLC中,只连接启动与停止开关,先不与变频器相连接,以免输出电压不正确导致变频器出错。
2.按下启动按钮,然后用万用表测CS1W-MAD44模拟量I/0模块的A1、A2两点间的电压,看是否按照规定曲线运行,如果运行正确则证明PLC部分调试成功。
3.连接PLC的输出点与变频器的输入点,并且调试好变频器的参数设置,最后把变频器的输出与电机接好。
4.最后打开启动按钮,电机正常运行,并且按照给定的时间函数循环运行。显示的最大频率是36HZ。
调试结果:
系统按照给定的时间函数连续循环运行,如图所示,由此说明系统设计合理可靠,此设计完全符合设计要求。
课程设计,对欧姆龙系列PLC的特点有了更深的理解。利用了欧姆龙系列PLC的特点,对按钮、开关等输入/输出进行控制,实现了变频器在控制作用下的自动化。
心得体会
通过本次课程设计,对欧姆龙系列PLC的特点有了更深的理解。利用了欧姆龙系列PLC的特点,对按钮、开关等输入/输出进行控制,实现了变频器在控制作用下的自动化。
在本次课程设计的实践环节中,我更深刻地理解和掌握了电器控制及可编程控制器(PLC)的理论知识和动手技能。参阅了大量的电器控制及可编程控制器(PLC)系统设计的书籍资料,查询了大量的图表、程序和数据,使得课程设计的方案和数据更为翔实和准确,力求科学严谨,使本次以变频器为主题的课程设计精益求精。
经历一周的方案设计、比较、论证、探讨等步骤,经过不懈的努力和反复的验证,积聚了同组同学的一致讨论并通过,再加上指导老师的细心点拨和教诲,终于成功地完成了本次课程设计。但是,由于学识浅薄和资历肤浅,对待解决问题还不成熟,望老师不吝纠正,深感谢意!