小车控制流程图

合集下载

运料小车

运料小车

第 6 页 共 36 页 ○7 联网通信功能; ○8 自检测、自诊断功能。 可以说,凡普通小型计算机能实现的功能,PLC 几乎也都可以做到。同时简单的归纳,PLC 有着以下几个特点: (1)高可靠性: ○1 所有的 I/O 接口电路均采用光电隔离,使工业现场的外电路与 PLC 内部电路之间电汽上 隔离。 ○2 各输入端均采用 R-C 滤波器,其滤波时间常数一般为 10~20ms. ○3 各模块均采用屏蔽措 施,以防止辐射干扰。 ○4 采用性能优良的开关电源。 ○5 对采用的器件进行严格的筛选。 ○6 良好的自诊断功能,一旦电源或其他软,硬件发生异常情况,CPU 立即采用有效措施, 以防止故障扩大。 ○7 大型 PLC 还可以采用由双 CPU 构成冗余系统或有三 CPU 构成表决系统,使可靠性更进一 步提高。 (2)丰富的 I/O 接口模块: PLC 针对不同的工业现场信号,如:交流或直流;开关量或模拟量;电压或电流;脉冲或 电位; 强电或弱电等。有相应的 I/O 模块与工业现场的器件或设备,如:按钮;行程开关; 接近开关;传感器及变送器;电磁线圈;控制阀等直接连接。另外为了提高操作性能,它还 有多种人-机对话的接口模块; 为了组成工业局部网络,它还有多种通讯联网的接口模块,等 等。
PLC 的主要特点 PLC 基于电子计算机,但并不等同于普通计算机。普通计算机进行入出信息变换时,大多 只考虑信息本身,信息入出的物理过程一般不考虑的实际使用。特别要考虑怎么适应于工业环境,如便于安装,便于维修及 抗干扰等问题,入出信息变换及可靠的物理实现,可以说是 PLC 实现控制的两个基本要点。 PLC 可以通过它的外设或通信接口与外界交换信息。其功能要比继电控制装置多的多、强 的多。 PLC 有丰富的指令系统,有各种各样的 I/O 接口、通信接口,有大容量的内存,有可靠的自 身监控系统,因而具有以下基本的功能: ○1 逻辑处理功能; ○2 数据运算功能; ○3 准确定时功能; ○4 高速计数功能; ○5 中断处理(可以实现各种内外中断)功能; ○6 程序与数据存储功能;

运料小车控制系统设计PPT课件

运料小车控制系统设计PPT课件
步处于活动状态时,执行相应的非存储型动作,不处于 活动状态时则停止执行。
.
9
四、步的概念
3、步的动作
步的动作分为存储型、非存储型两种: 存储型:指那些需要在若干个步中都应为“ON”的动作,
在顺序功能图中,可以根据需要用置位指令S来将置 “ON”,用复位指令R来复位 。 非存储型:指那些只在步处于活动步时才为“ON”的动 作,当步转为非活动步时,动作也被复位,在顺序功能 图中,直接用线圈输出。步与它的非存储型动作“共存 亡” 。
.
6
三、顺序设计法简介
顺序控制:按照生产工艺和时间的顺序,在各个信号的作用下,根据 内部状态和时间的顺序,在生产过程中各个执行机构自动地有序的进 行操作,如前述小车运料系统工作过程可表示为图5.2。
初始状态
SB按下 I0.0·I0.2
工序1
Q0.0 前行
SQ2
I0.1 装料 定时8s
工序2
Q0.4 T37
流程图中有分支,系统会根据转换条件的不同选择不同的分支。
图b)中,当I0.0为ON时,功能图由步S1.0转到步S1.1,当I0.1
为ON时,功能图由步S1.0转到步S1.4,I0.0和I0.1不能同时为
1,选择序列的结束称为合并,图中两个分支在步S1.3前合并。
图 c)是选择性分支的一种特殊情况,即某一条分支上没有
T39
定时2s
T40
定时2s
T41
图5.9彩灯显示系统顺序功能图
.
17
图5.10 彩灯系统梯形图程序
//首次扫描位使 能初始步S0.0 //初始步S0.0开始
//按下启动按钮(I0.0)且各彩灯均为OFF时,程序 从步S0.0切换到步S0.1:第一盏灯亮状态

PLC控制运料小车

PLC控制运料小车

项目七PLC控制运料小车的运行1.项目任务本项目的任务设计一个运料小车往返运动PLC控制系统。

系统控制要求如下:小车往返运动循环工作过程说明如下:小车处于最左端时,压下行程开关SQ4,SQ4为小车的原位开关。

按下启动按钮SB2,装料电磁阀YC1得电,延时20s,小车装料结束。

接着控制器KM3、KM5得电,向右快行;碰到限位开关SQ1后,KM5失电,小车慢行;碰到SQ3时,KM3失电,小车停止。

此后,电磁阀YC2得电,卸料开始,延时15s后,卸料结束;接触器KM4、KM5得电,小车向左快行;碰到限位开关SQ2,KM5失电,小车慢行;碰到SQ4KM4失电,小车停止,回到原位,完成一个循环工作过程。

整个过程分为装料、右快行、右慢行、卸料、左快行、左慢行六个状态,如此周而复始的循环。

图7-1 运料小车往返运动示意图2.任务流程图本项目的具体学习过程见图2-2。

图7-2 任务流程图学习所需工具、设备见表7-1。

表7-1 工具、设备清单1.功能图编程的特点功能图也叫状态图。

它是用状态元件描述工步状态的工艺流程图。

功能转移图与步进梯形图表达的都是同一个程序,其优点是让用户每次考虑一个状态,而不必考虑其它的状态,从而使编程更容易,而且还可以减少指令的程序步数。

功能转移图中的一个状态表示顺序控制过程中的一个工步,因此步进梯形图也特别适用于时间和位移等顺序的控制过程,也能形象、直观的表示顺序控制。

功能编程开始时,必须用STL使STL接点接通,从而使主母线与子母线接通,连在子母线上的状态电路才能执行,这时状态就被激活。

状态的三个功能是在子母线上实现的,所以只有STL接点接通该状态的负载驱动和状态转移才能被扫描执行。

反之,STL接点断开,对应状态就为被激活,前一状态就自动关闭。

状态编程的这一特点,使各状态之间的关系就像是一环扣一环的链表,变得十分清晰单纯,不相邻状态间的繁杂连锁关系将不复存在,只需集中考虑实现本状态的三大功能既可。

智能小车系统设计流程图

智能小车系统设计流程图
1-4
(3)单片机控制部分
控制部分采用了主从结构,主控制器负责黑线检测,金属检测,电机驱动等工作。从控制器负责显示,路程计算,速度计算,运行时间计算等工作。主从之间采用波特率为19200的串行通信。具体电路见1-5。
2:系统的软件设计
(1)路面检测程序流程图见1-6。外部四组红外线检测传感器共用一个中断源,进入中断服务程序后查询具体是哪一路传感器遇到黑线。
4:电源选择
方案一:所有器件采用单一电源,这样供电比较简单;但是由于电动机启动瞬间电流很大,而且PWM驱动的电动机电流波动较大,会造成电压不稳定,有毛刺等干扰,严重时可能造成单片机系统掉电,缺点十分明显。
方案二:双电源供电。将电动机驱动电源与单片机以及其周边电路电源完全隔离,利用光电耦合器传输信号。这样做虽然不如单电源方便灵活,但可以将电动机驱动所造成的干扰彻底消除,提高了系统稳定性。
1-3
我们采用了200HZ的周期信号控制,通过对其占空比的调整,对车速进行调节。最小脉宽为0.2ms速度分为5档,可以满足车速调整的精度要求。同时可以控制电动机的转向。
(2)路面黑线检测模块的电路设计与实现,具体电路见1-4,为了检测路面黑线,在车的前部安装了四个反射式红外传感器,分成左右两组,由传感器先后通过黑线的顺序可以知道小车现在跑道的位置,以便跑回原跑道。
1-6
(2)显示程序由主控CPU发送开始标志,slave mcu开始打开计数器开始计时间。当master mcu每检测到霍尔元件翻转一次便向slave mcu发送一个标志,slave mcu便累加一次计算之后送去显示。速度检测我们采用单位时间内计算共有多少个脉冲计算后即可得到速度值。
三测试结果及误差分析
我们认为本设计的稳定性更为重要,故采用方案二。

PLC课程设计---运料小车控制模拟

PLC课程设计---运料小车控制模拟

1 概述1.1 PLC的基本概念在PLC的发展过程中,美国电器制造商协会(NEMA)经过四年的调查,于1980年把这种新型的控制器正式命名为可编程控制器(Programmable Controller),英文缩写为PC,并且作如下定义:“可编程控制器是一种数字运算操作的是的电子系统,专为在工业环境下应用而设计。

它使用可编程序的存储器来存储指令,用来在其内部存储执行逻辑运算,顺序控制,计数,计时和算术运算等操作的指令。

并且通过数字式和模拟式的输入和输出,控制各种类型的机械或生产过程。

PLC及其有关外部设备,都应按易于与工业系统联成一个整体,易于扩充其功能的原则设计。

”定义强调了PLC应直接应用于工业环境,它必须有很强的抗干扰能力,广泛的适应能力和应用范围。

这是区别于一般微机控制系统的一个重要特征。

1.2 PLC的发展PLC自问世以来,经过40多年的发展,在美,德,日等工业发达的国家已成为重要的产业之一。

世界总销售额不断上升,生产厂家不断涌现,品种不断翻新,产量产值大幅度上升而价格不断下降。

目前,世界上有200多个厂家,较有名的公司有美国:AB通用电气,莫迪康公司;日本:三菱,富士,欧姆龙,松下电工等:德国:西门子公司;法国:TE施耐德公司;韩国:三星,LG公司等。

1.3 PLC的发展趋势(一)大型化为适应大规模控制系统的要求,大型PLC向着大存储容量,高速度,高性能,增加I|O点数的发展方向。

主要表现在以下几个方面:1.增强网络通信功能:;2.发展智能模块;3.外部故障诊断功能;4.编程语言、编程工具标准化、高级化5.实现软件、硬件标准化6.编程组态软件发展迅速(二)小型化发展小型PLC,其目的是为了占领广大的、分散的、中小型的工业控制场合,使PLC不仅成为继电器控制柜的替代物,而且超过继电器控制系统的功能。

小型PLC朝着简易化、体积小、功能强、价格低的方向发展。

1.4 PLC的主要功能1.开关量逻辑控制;2.模拟量控制;3.闭环过程控制;4.定时控制;5.计数控制;6.顺序(步进)控制;7.数据处理;8.通信和联网。

控制流程图

控制流程图

三、小车的来回动作控制
XXXXXXXXXXXXX
标准PLC的接线图
欧规PLC的接线图
图3-12 输入信号的接线图
XXXXXXXXXXXXX
(3)输出点接线:当PLC内部程序中的输出点 线圈接通时,对应的输出点的内部输出继电器 接通,使对应的COM端则与输出端子导通。当 PLC内部程序中的输出点线圈断开时,对应的 输出点的内部触点断开,COM端则与输出端子 断开。
案例4
现有一套小单机,主要控制一些继电器、接触器、 电磁阀、指示灯等开关量信号,并通过一些按钮、 行程开关、接近开关、光电开关等开关量输入信 号。统计后,输入信号需要18个,输出信号需要 20个,请选择性价比较高的三菱PLC?
XXXXXXXXXXXXX
二、PLC的硬件结构
1、PLC的硬件结构组成图
XXXXXXXXXXXXX
输入输出点分配图
XXXXXXXXXXXXX
扩展模块信号分配点
XXXXXXXXXXXXX
按照下面的控制工艺流程图,画出电气原理图
XXXXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXX
X1 A点
小车第二次 开始装料
T2
装料完后第 二次右行到C

X3 点
到达C点后 第二开始卸料
T3
C点卸料后完 成后回到点
X1 A点
Y1阀开 T0 K50
Y3小车右行
Y2 阀开 T1 K70
Y4 小车左行
Y1阀开 T2 K50
Y3 小车右行
Y2 卸料 T3 K70

PLC控制运料小车讲解

PLC控制运料小车讲解

PLC控制运料小车一、课题要求:要求:根据给定的设备和仪器仪表,在规定的时间内完成程序的设计、安装、调试等工作,达到课题规定的要求。

二、设计原则:按照完成的工作是否达到了全部或部分要求,由实验老师对其结果进行评价。

三、课题内容:其中启动按钮S01用来开启运料小车,停止按钮S02用来手动停止运料小车(其工作方式见考核要求2选定)。

按S01小车从原点起动, KM1接触器吸合使小车向前运行直到碰SQ2开关停, KM2接触器吸合使甲料斗装料5秒,然后小车继续向前运行直到碰SQ3开关停,此时KM3接触器吸合使乙料斗装料3秒,随后KM4接触器吸合小车返回原点直到碰SQ1开关停止,KM5接触器吸合使小车卸料 5秒后完成一次循环。

四、设计要求:1、编程方法由实验老师指定:⑴用欧姆龙系列PLC简易编程器编程⑵用计算机软件编程2、工作方式:A.小车连续循环与单次循环可按S07自锁按钮进行选择,当S07为“0”时小车连续循环,当S07为“1”时小车单次循环;B.小车连续循环,按停止按钮S02小车完成当前运行环节后,立即返回原点,直到碰SQ1开关立即停止;当再按启动按钮S01小车重新运行;C.连续作3次循环后自动停止,中途按停止按钮S02则小车完成一次循环后才能停止;3、按工艺要求画出控制流程图;4、写出梯形图程序或语句程序;5、用欧姆龙系列PLC简易编程器或计算机软件进行程序输入;6、在考核箱上接线,用电脑软件模拟仿真进行调试。

五、输入输出端口配置:输入设备输入端口编号接考核箱对应端口启动按钮S01 0000 SO1停止按钮S02 0001 SO2开关SQ1 0002 电脑和PLC自动连接开关SQ2 0003 电脑和PLC自动连接开关SQ3 0004 电脑和PLC自动连接选择按钮S07 0005 S07六、问题:小车工作方式设定:A.小车连续循环与单次循环可按S07自锁按钮进行选择,当S07为“0”时小车连续循环,当S07为“1”时小车单次循环;B.小车连续循环,按停止按钮S02小车完成当前运行环节后,立即返回原点,直到碰SQ1开关立即停止;当再按启动按钮S01小车重新运行;C.连续作3次循环后自动停止,中途按停止按钮S02小车完成一次循环后才能停止。

51单片机智能小车PWM调速前进程序源代码、电路原理图和器件表

51单片机智能小车PWM调速前进程序源代码、电路原理图和器件表

51单片机智能小车PWM调速前进程序源代码、电路原理图、电路器件表从控制电路角度划分,智能小车电路板分为核心板和驱动板。

核心板上的处理器的芯片型号是:STC15W4K56S4,这是一款51单片机。

驱动板上有电源电路、电机驱动电路以及一些功能模块接口。

智能小车前进只要控制智能小车四个轮子向前转动就可以了。

智能小车四个轮子由四个直流减速电机驱动。

直流减速电机驱动芯片采用L293D,一片电机驱动芯片L293D可以驱动两个直流减速电机,智能小车用到4个直流减速电机,需要用到两片L293D电机驱动芯片。

但有时候我们需要控制智能小车的速度,不希望智能小车全速前进。

比如在“智能小车循迹实验”中,如果智能小车速度过快,来不及反应做出方向的调整,智能小车会很容易跑离轨迹,这样就需要调整控制智能小车的速度了。

那么怎么样实现智能小车前进速度的调节呢?调节智能小车的速度,实际上是调节电机的运转速度,PWM调速是目前电机的主流调速方式。

智能小车采用脉宽调制(PWM)的办法来控制电机的转速,从而控制智能小车的速度。

在此种情况下,电池电源并非连续地向直流电机供电,而是在一个特定的频率下为直流电机提供电能。

不同占空比的方波信号,调节对直流电机的通断电,能起到对直流电机调速作用。

这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上。

这样,改变L293D使能端EN1和EN2上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了直流电机转速。

智能小车PWM调速前进程序如下:首先,定义了2个变量,这2个变量用于设置智能小车的速度。

unsigned char pwmval_left_init=6; //调节此值可以调节小车的速度。

unsigned char pwmval_right_init=6; //调节此值可以调节小车的速度。

通过以下函数初始化定时器0,每1毫秒中断一次。

void Timer0_Init(void) //定时器0初始化{TMOD=0x01;TH0=0xf8;TL0=0xcd;TR0=1;ET0=1;EA=1;}下面我们看定时器0的中断处理函数。

基于PLC的小车自动往返运动控制系统

基于PLC的小车自动往返运动控制系统

摘要可编程控制器(PLC)是一种数字运算操作的电子系统,专为在工业环境下应用而设计。

它采用可编程序的存贮器,用来在其内部存贮执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字的、模拟的输入和输出,控制各种类型的机械或生产过程。

本设计是基于PLC编程的生产流水线小车循环运动控制设计。

论述了小车控制系统的软、硬件设计方案及其控制原理。

采用的是步进指令,因而比较简洁。

关键词:PLC 步进指令循环控制目录摘要 (I)第一章概述 (1)1.1设计背景及意义 (1)第二章硬件设计 (3)2.1主电路图 (3)2.2 I/O地址分配 (4)2.3 I/O接线图 (4)2.4 元件列表 (5)第三章软件设计 (6)3.1 程序流程图 (6)3.2 梯形图 (7)3.3 STL指令 (11)3.4 程序分析 (12)第四章程序调试 (14)4.1 程序流程图 (14)设计感想 (16)参考文献 (17)第一章概述1.1 设计背景及意义传统的运料小车大都是继电器控制,而继电器控制有着接线繁多、故障率高且维修不易等缺点,PLC作为目前国内市场的主流控制器,在技术、行业影响等方面有重要作用。

利用PLC控制代替继电器控制已经是大势所趋。

由于PLC的不断发展和革新,使得生产线的运输控制也将得到不断的改善和生产率的不断提高,小车自动控制系统经历了以下几个阶段:(1)手动控制:但是由于当时的技术还不够成熟,这种系统存在设计周期长、体积大、成本高等缺陷,几乎无数据处理和通信功能,必须有专人负责操作。

(2)自动控制:通过机器人技术,自动化设备终于实现了PLC在小车自动控制系统在自动方面的应用。

(3)全自动控制:PLC大多采用多CPU结构,不断向高性能、高速度和大容量方向发展。

现代企业为提高生产车间物流自动化水平,实现生产环节间的运输自动化,使厂房内的物料搬运全自动化,许多企业在生产车间广泛使用无人小车,小车在车间工作台或生产线之间自动往返装料卸料。

PLC控制运料小车

PLC控制运料小车

!-项目七PLC 控制运料小车的运行1.项目任务本项目的任务设计一个运料小车来回运动PLC 控制系统。

系统控制要求以下:小车来回运动循环工作过程说明以下:小车处于最左端时,压下行程开关SQ4,SQ4为小车的原位开关。

按下启动按钮SB2,装料电磁阀 YC1 得电,延时 20s,小车装料结束。

接着控制器KM3 、KM5 得电,向右快行;遇到限位开关SQ1 后, KM5 失电,小车慢行;遇到 SQ3 时, KM3 失电,小车停止。

今后,电磁阀YC2 得电,卸料开始,延时 15s 后,卸料结束;接触器KM4 、 KM5 得电,小车向左快行;遇到限位开关SQ2,KM5 失电,小车慢行;遇到SQ4KM4 失电,小车停止,回到原位,达成一个循环工作过程。

整个过程分为装料、右快行、右慢行、卸料、左快行、左慢行六个状态,这样周而复始的循环。

图 7-1 运料小车来回运动表示图!-2.任务流程图本项目的详细学习过程见图2-2 。

图 7-2 任务流程图学习所需工具、设施见表7-1 。

表 7-1工具、设施清单序号分类名称型号规格数目单位备注1工常用电工工具1套2具万用表MF4713PLC FX1N-40MR1只4设运料小车1个5沟通接触器KM3 、 KM4 、 KM53备6三相电源插头16A1只7电磁阀YC1 、 YC228行程开关SQ1、 SQ22限位开关SQ3、 SQ421.功能图编程的特色功能图也叫状态图。

它是用状态元件描绘工步状态的工艺流程图。

功能转移图与步进梯形图表达的都是同一个程序,其长处是让用户每次考虑一个状态,而不用考虑其余的状态,进而使编程更简单,并且还能够减少指令的程序步数。

功能转移图中的一个状态表示次序控制过程中的一个工步,所以步进梯形图也特别合用于时间和位移等次序的控制过程,也能形象、直观的表示次序控制。

功能编程开始时,一定用STL 使 STL 接点接通,进而使主母线与子母线接通,连在子母线上的状态电路才能履行,这时状态就被激活。

基于PID控制的两轮平衡小车(附原理图和程序讲解)

基于PID控制的两轮平衡小车(附原理图和程序讲解)

课程设计题目基于PID控制的两轮平衡小车学院XXXXX 专业班级XXXXXX小组成员XXXX 指导教师XXXXX X年 XX 月 XXX小组成员介绍及分工小组成员信息小组成员分工目录机电系统实践与实验设计 (1)一、研究背景与意义 (2)二、平衡原理 (2)2.1 平衡车的机械结构 (2)2.2 自平衡车倾倒原因的受力分析 (3)2.3 平衡的方法 (3)三、两轮平衡小车总体设计 (4)3.1 整体构思 (4)3.2 姿态检测系统 (4)3.3 控制算法 (5)四、matlab建模及仿真 (6)4.1 机械模型建模及仿真(Matlab_simulink) (6)4.2 联合控制器仿真(理想状态PID) (8)五、硬件电路设计 (9)5.1、硬件电路整体框架 (9)5.2、系统运作流程介绍 (10)5.3、硬件电路模块 (10)5.31 电源供电部分 (10)5.32 主控制器部分: (10)5.33 传感器部分; (11)5.34 驱动电路部分 (11)5.35 蓝牙控制模块 (12)5.36 超声波检测模块 (13)5.37 寻迹模块 (13)六、软件控制模块 (14)6.1 系统软件设计结构 (14)6.2 整体初始化过程 (14)6.3 程序设计 (15)6.31 PID-三个参数的调整 (15)6.32 OLED显示信息 (16)6.33 PID-采集信息 (16)6.34 PID-数据计算 (17)6.35 PID-结果输出 (18)6.36 超声波避障 (18)6.37 蓝牙控制 (18)6.38 寻迹实现 (19)七、总结 (19)附录 (21)摘要:两轮自平衡车结合了两轮同轴、独立驱动、悬架结构的自平衡原理,是一种在微处理器控制下始终保持平衡的集智能化与娱乐性于一体的新型代步工具。

整车由底盘、动力装置、控制装置和转向装置组成。

机械结构采用了双轮双马达驱动;控制主要采用的是反馈调节,为了使车体更好的平衡,使用了PID调节方式;硬件上采用陀螺仪GY521 MPU-6050来采集车体的旋转角度以及旋转角加速度,采用加速度传感器来间接测量车体旋转角度,同时,加入超声波检测模块,使小车能够自动完成避障功能;通过在两轮平衡车上加入两个寻迹模块(光电传感器)来识别场地上的黑白线,使得两轮自平衡车能够沿着黑线进行寻迹完成循迹功能。

运料小车的PLC控制实验

运料小车的PLC控制实验

运料小车的PLC控制实验一、实验目的1.学会用PLC 解决一个实际问题的思路;2.熟悉PLC 指令的功能;3.掌握程序设计中起保停电路、自锁电路和互锁电路的设计方法;二、实验器材和设备1.FX 系列PLC 一台2.FX-10P-E 或FX-20P-E 手持编程器一台3.模拟开关板一块4.编程电缆5.若干连接导线和PLC电源线6.接触器三个,一个输出控制卸料的电磁铁,一个热继电器,三个热继电器个按钮开关、2个行程开关8.内装有三相异步电动机的小车9.熔断器一个10.三极开关一个三、实验原理1.运料小车是工业送料的主要设备之一,小车通常采用电动机驱动,电动机正转小车前进,电动机反转小车后退;将PLC应用到运料小车电气控制系统,可实现运料小车的自动化控制,降低系统的运行费用;PLC运料小车电气控制系统具有连线简单,控制速度快,精度高,可靠性和可维护性好,安装、维修和改造方便等优点;工作过程如下:a. 小车启动后,前进到A地;然后做以下往复运动:到A地后停2分钟等待装料,然后自动走向B;到B地后停2分钟等待卸料,然后自动走向A;b. 小车可停在任意位置运料小车2. 运料小车的控制系统主回路三相异步电动机正反转电路图3. 运料小车控制系统控制回路传统运料小车大都是继电器控制;以继电器为主的运料小车控制系统的控制回路如下图所示;运料小车继电器控制电路4. 运料小车控制系统的控制系统构成图运料小车控制系统图的选用根据运料小车输入输出设备的分配,在I/O方面只需要6个输入口和3个输出口,同时考虑适当的余量,选用FX2N-16MR的PLC即可;6. PLC外部接线图运料小车由一台三相异步电动机拖动,电机正转,小车向右行,电机反转,小向左行;小车控制系统的输入,输出设备与PLC的I/O端对应的外部接线图如图所示;运料小车PLC外部接线图7. 运料小车I/O 分配表这个控制系统的输入有2个启动按钮开关、1个停止按钮开关、2个行程开关、热继电器共6输入点;这个控制系统需要控制的外部设备只有控制小车运动的三相电动机一个;电机有正转和反转两个状态,分别都应正转继电器和反转继电器,另外还有一个输出控制卸料电磁铁,所以输出点应该有3个;对应的地址分配表如表所示;四、实验步骤和内容1.按照元件安装图安装各电气元件;2.按照主电路原理图,完成主电路中各电气元件与电动机的接线;3.按照PLC外部接线原理图,完成输入开关、输出继电器、热继电器与PLC 接线端子的接线;4. 对程序系统与电气系统进行联合测试;五、完成实验报告,并回答下列问题1.画出运料小车的控制流程图2.依据继电器控制线路图,分析小车运动动作过程按下SB2,接触器KM1得电,小车正向运行;运行到A端时,撞行程开关ST1;时间继电器KT1得电,延时2分钟,即装料过程;时间继电器KT1计时时间到后,其常开触点闭合,接触器KM2得电,小车反向运行;反向运行至B端,撞行程开关ST2;时间继电器 KT2得电后,延时2分钟,同时卸料电磁铁得电开始卸料,整个过程为卸料过程;时间继电器KT2计时时间到后,接触器KM1得电,小车正向运行,开始下一周期过程;3.写出运料小车PLC控制的梯形图4. 运料小车控制系统语句表0 LD X0011 OR Y0002 OR T13 ANI X0004 ANI M15 ANI X0036 ANI Y0017 OUT Y0008 LDI X0009 AND X00310 OUT T0 K120011 LD X00212 OR Y00113 OR T014 ANI X00015 ANI M116 ANI X00417 ANI Y00018 OUT Y00119 LDI X00020 AND X00421 OUT T1 K120022 OUT Y00223 LDI X00024 AND X00525 OUT M126 END六、实验感想随着经济的不断发展,运料小车的应用也不断扩大到各个领域,从手动到自动,逐渐形成了机械化、自动化;本实验运用的可编程控制器实现的自动运料小车控制器,避开了以往继电器接触不良、开关易损坏等缺点,可靠性和稳定性都有所提高;在检测小车是否到装料、卸料点的时候,运用了行程开关使小车的停靠位置更加准确;同时,由于输入输出很明显,不需要好多额外的外接电路,让实验更简洁;这也是采用了成熟的可编程控制器带来的好处;即使在出现故障、紧急停止等环节中都能快捷操作;通过这次对小车自动运料的PLC控制的实验设计,让我对各个器件有了很深的认识,学到了一些课本上没有的知识,认识了一些器件的原理,包括它们的常开常闭触点以及作用,通过实际的操作,认识到了自己的不足,这使我以后会更努力的学习,来补足自己的缺点;在实验的过程中我们还得到了老师的帮助与意见;在学习的过程中,不是每一个问题都能自己解决,向老师请教或向同学讨论是一个很好的方法;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小车控制流程图
目标携带装置控制流程图:
程序展示:
#define DEBUG 0 // set to 1 to print to serial monitor, 0 to disable #include <Servo.h> Servo headservost int EchoPin = 2; // const int TrigPin = 3; // const int leftmotorpin1 = 4; // const int leftmotorpin2 = 5; const int rightmotorpin1 = 6; const int rightmotorpin2 = 7 const int HeadServopin = 9; // const int Sharppin = 11; // const int maxStart = 800; //run dec time // Variables int isStart = maxStart; // int currDist = 0; // boolean running = false; void setup() { Serial.begin(9600); // pinMode(EchoPin, INPUT); pinMode(Sharppin, INPUT); for (int pinindex = 3; pinindex < 11; pinindex++) {
body_lturn(); } else{
body_rturn(); } return; } // void totalhalt() { digitalWrite(leftmotorpin1, HIGH); digitalWrite(leftmotorpin2, HIGH); digitalWrite(rightmotorpin1, HIGH); digitalWrite(rightmotorpin2, HIGH); headservo.write(70); // set servo to face forward running = false; return; delay(1000); } // void body_lturn() {
pinMode(pinindex, OUTPUT); // set pins 3 to 10 as outputs } // headservo.attach(HeadServopin); // headservo.write(70); delay(2000); headservo.write(20); delay(2000); } void loop() { if(DEBUG){
running = true; digitalWrite(leftmotorpin1, LOW); digitalWrite(leftmotorpin2, HIGH); digitalWrite(rightmotorpin1, HIGH); digitalWrite(rightmotorpin2, LOW); delay(1500); totalhalt(); } // void body_rturn() { running = true; digitalWrite(leftmotorpin1, HIGH); digitalWrite(leftmotorpin2, LOW); digitalWrite(rightmotorpin1, LOW); digitalWrite(rightmotorpin2, HIGH); delay(1500); totalhalt(); } void randTrun(){ long randNumber; randomSeed(analogRead(0)); randNumber = random(0, 10); if(randNumber > 5) {
digitalWrite(rightmotorpin2, LOW); delay(1000); } // void whichway() { running = true; totalhalt(); // first stop! headservo.write(20); delay(1000); int lDist = MeasuringDistance(); // check left distance totalhalt(); // headservo.write(120); // turn the servo right delay(1000); int rDist = MeasuringDistance(); // check right distance totalhalt(); // if(lDist < rDist) {
body_rturn(); } else {
body_lturn(); } }
Serial.print("running:"); if(running){ Serial.println("true"); } else{
Serial.println("false"); } } if (isStart <= 0) { if(running){ totalhalt(); //
} int findsomebody = digitalRead(Sharppin); if(DEBUG){ Serial.print("findsomebody:"); Serial.println(findsomebody); } if(findsomebody > 0) { isStart = maxStart; } delay(4000); return; } isStart--; delay(100); if(DEBUG){ Serial.print("isStart: "); Serial.println(isStart); } currDist = MeasuringDistance(); // if(DEBUG){ Serial.print("Current Distance: "); Serial.println(currDist); } if(currDist > 30) { nodanger(); } else if(currDist < 15){
backup(); randTrun(); } else { //whichway(); randTrun(); } } / long MeasuringDistance() { long duration; //pinMode(TrigPin, OUTPUT); digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(5); digitalWrite(TrigPin, LOW); //pinMode(EchoPin, INPUT); duration = pulseIn(EchoPin, HIGH) return duration / 29 / 2; } // void nodanger() { running = true; digitalWrite(leftmotorpin1, LOW); digitalWrite(leftmotorpin2, HIGH); digitalWrite(rightmotorpin1, LOW); digitalWrite(rightmotorpin2, HIGH); return; } // void backup() { running = true; digitalWrite(leftmotorpin1, HIGH); digitalWrite(leftmotorpin2, LOW); digitalWrite(rightmotorpin1, HIGH);
相关文档
最新文档