电气设计图纸及西门子PLC编程

合集下载

西门子PLC编程操作及注意事项

西门子PLC编程操作及注意事项

西门子PLC编程操作及注意事项一、PLC基本概念可编程控制器(Programmable Controller)是计算机家族中的一员,是为工业控制而设计制造的。

早期的可编程控制器称作可编程逻辑控制器(Programmable Logic Controller),简称 PLC,它主要用来代替继电器实现逻辑控制。

随着技术的发展,这种装置的功能已经大大超过了逻辑控制的范围,因此,今天这种装置称作可编程控制器,简称PC。

但是为了避免与个人计算机(Personal Computer)的简称混淆,所以将可编程控制器简称PLC。

二、PLC的基本结构PLC实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同。

A、中央处理器(CPU)中央处理器(CPU)是PLC的控制中枢。

它按照PLC系统成程序赋予的功能接收并存储从编程器键入的用户程序和数据;检查电源、存储器、I/O以及报警定时器的状态,并能诊断用户程序中的语法错误。

当PLC投入运行时,首先它以扫描的方式接受现场各输入装置的状态和数据,并分别存入I/O映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后,按指令的规定执行逻辑或数字运算的结果送入I/O映象区或数字寄存器内。

等所有的用户程序执行完毕之后,最后将I/O映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到停止运行。

为了进一步提高PLC的可靠性,近年来对大型PLC还采用双CPU构成冗余系统(如S1501\二期循环水、除盐水等系统),或采用三CPU(TS300等)的表决式系统。

这样即使某个CPU出现故障,整个系统仍能正常运行。

B、存储器存储系统程序的存储器称为系统存储器。

存储应用软件的存储器称为用户存储器。

(一) PLC常用的存储器类型1. RAM (Random Assess Memory)这是一种读/写存储器(随机存储器),其存取速度最快,由锂电池支持。

2. EPROM (Erasable Programmable Read Only Memory)这是一种可擦除的只读存储器。

数控成型磨床MK7132x20电气电路图与PLC梯图(西门子802D)

数控成型磨床MK7132x20电气电路图与PLC梯图(西门子802D)
接触器
JBK3-250,380V/220V(50VA)/110V(200VA)
DL-1000A,AC220V
1
LC1-D0910F5C,AC110V
1
KMX-05/2,AC220V
1
JZ3-3,2500mA
2. 电气系统的工作环境和运行条件
2.1 环境温度 机床安装处的环境温度不得高于 40°C,最低温度不得低于+5°C,24h 平均温度不得超过 35°C。 2.2 海拔高度 机床安装处海拔高度应在 1000 米以下。 2.3 大气条件 机床工作环境中不应存在超量污染物(如灰尘、酸类物、腐蚀气体、盐类),相对湿度 应在 30%-95%范围内(无冷凝水)。否则应加装相应防护装置。
MDI 为编辑方式。 JOG 为手动方式,包括连续点动和增量方式。 AUTO 为自动方式,运行加工程序时,必须在此方式下。注意,在运行加工程
序前,必须确保各伺服轴已经回过绝对零位。 REF 为回零方式,在机床控制系统正常上电后,一般都要在此方式下,各伺
MK7132x20
使用说明书(电气部分)
20-HL1 21-Sቤተ መጻሕፍቲ ባይዱ1
6.13 报警信号显示与处理 6.13.1 系统报警其意义与处理方法见 SIEMENS 802D 诊断手册。 6.13.2 本机床专设用户报警如下:
700004 自动 驱动器未就绪 700007 自动 交流电机过载 700011 自动 KA11 吸盘失磁 700033 自动 M59,喷嘴位置须调整。 700002 自动 M60,砂轮已用至极限,须更换。
MK7132x20 型 数控成型磨床
使用说明书
(电气部分) 工作台面宽度 320mm 工作台面长度 2000mm 出厂编号: 0001

西门子300PLC编程-入门 ppt课件

西门子300PLC编程-入门  ppt课件

STL
A I 1.0 A I 1.1 = M 0.0 A M 0.0 A I 2.0 A I 2.1 NOT = M 1.1 A M 1.1 = Q 4.0
23
•中间输出操作练习
PPT课件
24
(7) RLO - 边沿检测 (检测确 >> I1.0与I1.1的边沿)
LAD
I1.0 I1.1
M1.0
TIME-OF-DAY 为 日计时

范围 TOD#0:0:0.0~

TOD#23:59:59.999
PPT课件
8
2 过程映象
PII
字节 0
字节 1
字节 2
1
:
:
:
CPU 存储器区
用户程序
: : A I 2.0 = Q 4.3 : : : :
PPT课件
PIQ
字节 0
字节 1
字节 2
:
:
1
:
CPU 存储器区
46
•FC块:
FC1
PPT课件
47
•OB块:
OB1
PPT课件
48
•运行仿真:
温控1控制仿真
温控2控制仿真
PPT课件
49
2 温度控制(S7-PRO2)
•说明:检测温度在PIW256中,显示在PQW368中。 温控1的温度保持在8±2,控制器为Q 0.0 。 温控2的温度保持在18±2,控制器为Q 0.1 。
说明: 梯形图中CV为用十六进制表示的计数器的当前值。 梯形图中CV_ BCD为用BCD码表示的计数器的当前值。 梯形图中的PV值可以用BCD码表示的数值由通道送入。
PPT课件
41

PLC课程设计集锦-西门子PLC编程案例

PLC课程设计集锦-西门子PLC编程案例

课程设计集锦-西门子PLC编程案例一、小车往返运动用S7-200实现小车往返的自动控制,控制过程为按下启动按钮,小车从左边往右边(右边往左边运动)当运动到右边(左边)碰到右边(左边)的行程开关后小车自动做返回运动,当碰到另一边的行程开关后又做返回运动。

如此的往返运动,直到当按下停车按钮后小车停止运动。

▲电气接线图I/O分配表梯形图程序PLC接线图程序调试及结果分析▲控制平台操作面板当按下SB2即i0.0(鼠标点击i0.0f)接通后,Q0.0接通,小车右行(即指示灯Q0.0 亮)。

当小车运行碰到右限位开关SQ2即i0.4(用鼠标点击i0.4f,模拟SQ2被压下)接通,此时小车左行(指示灯Q0.0灭,指示灯Q0.1亮),当运行到左边碰到左限位SQ1即i0.3(鼠标点击i0.3f)接通,此时小车又往右运行(指示灯Q0.1灭,指示灯Q0.0 亮)。

如此往返运动下去直到按下SB1即i0.2(鼠标点i0.2f)接通,小车停止运行。

附:二、闪光电路当按下启动按钮后,要求在两秒钟内有一秒亮有一秒灭,如此反复,灯一闪一闪发光。

I/O分配表梯形图程序PLC接线图程序调试及结果分析把编写好的程序下载到西门子s7-200PLC中进行调试。

观察运行结果和实验要求是否相同。

通过在线控制面板进行调试,当按下在线控制面板上的I0.0f(即I0.0 接通)此时Q0.0有输出,Q0.0所接负载灯就亮,同时启动定时器T37开始计时,当计时一秒后因T37动作,其常闭触点断开,所以Q0.0无输出,所接负载灯灭。

灯灭的同时启动定时器T38,T38 计时一秒后,把串联在定时器T37的常闭触点断开,所以T37复位,T37常闭触点恢复常闭。

此时Q0.0 又有输出,所接负载灯又亮。

这样,输出Q0.0上所接的负载灯以接通一秒,断开一秒频率不停的闪烁,直到按下在线控制面板上的I0.1f(即I0.1接通),闪光电路不在继续工作。

若想改变灯闪烁的频率只要改变定时器的时间就能够达到改变要求。

西门子PLC编程图文详解

西门子PLC编程图文详解
图5-3 不可连续使用=指令的电路
*
5.1.3 触点并联指令
触点并联指令为:O、ON。 O(Or):或指令。用于单个常开触点的并联连接。 ON(Or Not):或反指令。用于单个常闭触点的并联连接。 图5-4 O、ON指令的用法 使用说明:(1)单个触点的O、ON指令可连续使用。 O、ON指令的操作数同前。
5.1.8 脉冲生成指令
脉冲生成指令为EU(Edge Up)、ED(Edge Down).下表为脉冲生成指令使用说明
*
图5-11 时序图
EU指令对其之前的逻辑运算结果的上升沿产生一个宽度为一个扫描周期的脉冲,如图中的M0.0;ED指令对其逻辑运算结果的下降沿产生一个宽度为一个扫描周期的脉冲,如图中的M0.1。脉冲指令常用于启动及关断条件的判定以及配合功能指令完成一些逻辑控制任务。
例:
逻辑取及线圈驱动指令
逻辑取及线圈驱动指令为LD、LDN和=。 LD(Load):取指令。用于网络块逻辑运算开始的常开触点与母线的连接。 LDN(Load Not):取反指令。用于网络块逻辑运算开始的常闭触点与母线的连接。 =(Out):线圈驱动指令。
图5-1 LD、LDN、=指令用法
语句表
RI,立即复位指令
*
(2)=I,立即输出指令
(1)立即触点指令 在每个标准触点指令的后面加“I”。指令执行时,立即读取物理输入点的值,但是不刷新对应映像寄存器的值。 这类指令包括:LDI、LDNI、AI、ANI、OI和ONI。 用法: LDI bit 例: LDI I0.2 注意:bit只能是I类型。
图5-12 跳变应用
逻辑堆栈操作指令
S7-200系列PLC使用一个9层堆栈来处理所有逻辑操作。堆栈是一组能够存储和取出数据的暂存单元,其特点是“先进后出”。每一次进行入栈操作,新值放入栈顶,栈底值丢失;每一次进行出栈操作,栈顶值弹出,栈底值补进随机数。逻辑堆栈指令主要用来完成对触点进行的复杂连接。

西门子PLC编程经验设计法及应用,附实例

西门子PLC编程经验设计法及应用,附实例

在PLC发展的初期,沿用了设计继电器电路图的方法来设计比较简单的PLC 的梯形图,即在一些典型电路的基础上,根据被控对象对控制系统的具体要求,不断地修改和完善梯形图。

有时需要多次反复地调试和修改梯形图,增加一些中间编程元件和触点,最后才能得到一个较为满意的结果。

这种PLC梯形图的设计方法没有普遍的规律可以遵循,具有很大的试探性和随意性,最后的结果不是唯一的,设计所用的时间、设计的质量与设计者的经验有很大的关系,所以有人把这种设计方法叫做经验设计法,它可以用于较简单的梯形图(如手动程序)的设计。

梯形图的经验设计法是目前使用比较广泛的一种设计方法,该方法的核心是输出线圈,这是因为PLC的动作就是从线圈输出的(可以称为面向输出线圈的梯形图设计方法)。

其基本步骤如下:(1)分解控制功能,画输出线圈梯形图。

根据控制系统的工作过程和工艺要求,将要编制的梯形图程序分解成独立的子梯形图程序。

以输出线圈为核心画输出位梯形图,并画出该线圈的得电条件、失电条件和自锁条件。

在画图过程中,注意程序的启动、停止、连续运行、选择性分支和并联分支。

(2)建立辅助位梯梯形图。

如果不能直接使用输入条件逻辑组合作为输出线圈的得电和失电条件,则需要使用工作位、定时器或计数器以及功能指令的执行结果作为条件,建立输出线圈的得电和失电条件。

(3)画出互锁条件和保护条件。

互锁条件是可以避免同时发生互相冲突的动作,保护条件可以在系统出现异常时,使输出线圈动作,保护控制系统和生产过程。

在设计梯形图程序时,要注意先画基本梯形图程序,当基本梯形图程序的功能能够病足要求后,再增加其他功能,在使用输入条件时,注意输入条件是电平、脉冲还是边沿。

调试时要将梯形图分解成小功能块调试完毕后,再调试全部功能。

经验设计法具有设计速度快等优点,但是,在设计问题变得复杂时,难免会出现设计漏洞。

下面介绍两个程序设计实例。

例:运货小车的自动控制1.运货小车的动作过程图1运货小车在限位开关SQ0装料(见图1)10s后,装料结束。

零基础学西门子S7 200 SMART PLC编程及应用

零基础学西门子S7  200 SMART PLC编程及应用
本书首先讲述了常用低压电器和电气控制电路基本知识,然后以S7-200 SMART PLC为例,通过实例介绍了 S7-200 SMART PLC的硬件组成、指令系统和编程软件的使用方法、通信与网络、控制系统的设计等内容。本书可 作为高等院校电气类及相关专业的教材,也可作为电工及电气技术人员培训及自学用书。
01
7.1 PLC控 制系统设计 的内容与步 骤
02
7.2 PLC控 制系统的硬 件配置
03
7.3 PLC控 制系统梯形 图程序的设 计
04
7.4顺序控 制梯形图的 设计方法
06
思考与练习
05
7.5 PLC在 工业控制系 统中的典型 应用实例
8.1通信网络的基础 知识
8.2 PLC以太网通信
8.3 RS485/RS232 端口自由通信
3.3 PLC的硬件结 构
3.5可编程序控制 器的发展及应用
3.4 PLC的工作原 理与编程语言
思考与练习
4.1软件安装及 硬件连接
4.2编程软件的 使用
5.2 PLC的编程语 言与程序结构
5.1西门子S7-200 SMART系列PLC
5.3数据类型与寻 址方式
5.5定时器指令与 计数器指令
5.4位逻辑指令
思考与练习
6.1数据传送指令 6.2数据比较指令
6.3四则运算指令 6.4逻辑运算指令
6.6移位与循环移 位指令
6.5递增、递减指 令
6.7数据转换指令
01
6.8表功能 指令
02
6.9时钟指 令
04
6.11中断 指令
06
思考与练习
03
6.10程序 控制类指令
05
6.12 PID 控制

西门子PLC编程电缆制作图

西门子PLC编程电缆制作图

西门子PLC编程电缆制作图西门子plc编程电缆制作图s7-200编程电缆西门子编程电缆pcppi电缆制作不知你的接线图,是不是原装电缆的接线图?我是用过一个国产的电缆,结果烧坏了PORT口。

呵呵;下面的图还可以,简单的自制办法:买一个RS232/485转换器,把线引出就行了,不过成本要几十元; 第一个图慎用;基本上烧毁Port口均是由于工程师的带电插拔这个不良习惯造成的~~~改正自己的不良习惯,那么郁闷的事情会少许多……以上呵呵;带光电隔离的电缆带电插拨都不会用问题;不过用第一张图片制作的就算能用,如果带电插拨可就危险了;关于CPU使用的常见问题A: 在使用Micro/WIN V4.0编程时须注意哪些事项?CTS7-200 CPU不支持一下几种Micro/WIN功能:(1) 不支持储存卡编程和清除(2) 不支持在线编程功能(Program Edit In Run)(3) 不支持配方和数据日志功能(4) System Block的增加内存设置无效(默认情况已经允许使用最大的内存空间)。

(5) 由于目前的CTS7-200不支持西门子的特殊模块,如:EM241、EM243、EM253和EM277,因此CTS7-200 P LC也不支持Micro/WIN里与这些模块相关的功能。

A: CPU224的两个串口怎么使用?CPU224的两个串口一个是RS485、一个是RS232,这是两个物理接口而非逻辑接口,实际上都是PORT0,只能走一种通信协议,不可以同时通过PPI协议与屏进行通信和通过自由口协议与变频器通信。

连接设备是RS232接口的用RS232口,连接设备是RS485接口的用RS485口,A: CPU226的两个串口怎么使用?CPU 226提供两个完全独立的RS485口,PORT0和PORT1,PORT0是标准RS485口,PORT1则是同时支持RS232和RS485的混合物理接口(母座),用户可通过RS232电缆直接对PLC进行编程。

西门子PLC编程图详解72637

西门子PLC编程图详解72637
3
第五章 PLC的基本指令及程序设计
4)梯形图最右侧必须接输出元素,PLC的输出元素用括号表示,并标 出输出变量的代号。同一标号输出变量只能使用一次. 5)梯形图中的触点可以任意串、并联,而输出线圈只能并联,不能串 联。每行最多触点数由PLC型号不同而不同. 6) 内部继电器、计数器、移位寄存器等均不能直接控制外部负载, 只能作中间结果供PLC内部使用.
9
图5-3 不可连续使用=指令的电路
第五章 PLC的基本指令及程序设计
5.1.3 触点并联指令
触点并联指令为:O、ON。 O(Or):或指令。用于单个常开触点的并联连接。 ON(Or Not):或反指令。用于单个常闭触点的并联连接。
图5-4 O、ON指令的用法
使用说明:(1)单个触点的O、ON指令可连续使用。
11
(3)OLD指令无操作数。
第五章 PLC的基本指令及程序设计
5.1.5 并联电路块的串联连接指令
两条以上支路并联形成的电路叫并联电路块。 ALD(And Load):与块指令。用于并联电路块的串联连接。
图5-6 ALD指令的用法
使用说明:
(1)在块电路开始时要使用LD、LDN指令。
(2)在每完成一次块电路的串联连接后要写上ALD指令。
多为128个)物理输出点被立即置位,同时,相应的输出映像寄存器的内容也
被刷新。
用法:SI
bit, N
例: SI
Q0.0, 2
注意:bit只能是Q类型。
(4)RI,立即复位指令

用立即复位指令访问输出点时,从指令所指出的位(bit)开始的
N个(最多为128个)物理输出点被立即复位,同时,相应的输出映像
(Network)为单位,所有的网络块组合在一起就是梯形图,

西门子S7-200型PLC指令系统及编程应用

西门子S7-200型PLC指令系统及编程应用

九、照明灯、指示灯等控制
继电控制电路中的照明灯一般都是36V安全电压驱动,所以具有 单独的变压器供电;而指示灯的电压等级不定,从6.3V到220V不等。
如果原继电控制回路中有照明灯、指示灯等,利用PLC进行改造 时一般不用改动,保留原样即可。
如果想丰富PLC控制系统的指示功能,可以单独改造指示灯电路, 实现闪烁等变化。
所谓“状态”是指特定的功能,因此状态转移实 际上就是控制系统的功能转移。机电自控系统中机械 的自动工作循环过程就是电气控制系统的状态自动、 有序、逐步转移的过程。
七、时间继电器的处理
时间继电器用来产生延迟效果,继电接触控制电路中的时间继电 器有通电延时型和断电延时型两种,每种时间继电器都有延时动作 触点和瞬时动作触点。
如果原继电控制回路中使用了通电延时动作的时间继电器,在 利用PLC控制系统设计时将其以PLC的定时器代替,不必出现在PLC的 输入或输出列表中,原时间继电器的延时闭合触点和延时打开触点 分别用定时器的常开接点和常闭接点代替。
五、PLC外部接线图设计
六、中间继电器的处理方法
中间继电器是用来“暂时”记忆控制过程的中间状态,这些状 态需要参与系统控制,但是并不直接驱动最终物理负载。
如果原继电控制回路中使用了中间继电器(一般以KA标记), 在利用PLC控制系统设计时将其以PLC的内部继电器(或者叫中间继 电器、辅助继电器)代替,不必出现在PLC的输入或输出列表中。
输入 正转启动按钮SB1 反转启动按钮SB2
停止按钮SB3 左限位SQ1 右限位SQ2 左极限限位SQ3 右极限限位SQ4 热保护FR
I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7
输出 正转驱动KA1 反转驱动KA2

PLC电气CAD教程_ppt

PLC电气CAD教程_ppt

的控制电路如图4-3所示。
图4-3 控制电路
PDF 文件使用 "pdfFactory Pro" 试用版本创建
PLC电气控制技术
电路的完善:
Ø 电路初步设计完后, 可能还有不够合理的 地方,因此需仔细校 核 。 图 4-3 中 , 一 共 用了三个KMl的常开 辅助触点,而一般的 接触器只有两个常开 辅助触点。因此,必 须进行修改。从电路 的工作情况可以看出, KM3的常开辅助触点 完全可以代替KM1的 常开辅助触点去控制 电 磁 铁 YA , 修 改 后 的 辅 助 电 路 如 图 4-4 所示。
u 电气控制系统设计的原则:
1.电力拖动方案确定的原则:
无电气调速要求电力拖动方案确定: Ø 笼型异步电动机:起动不频繁的场合 Ø 绕线转子异步电动机:负载静转矩大的拖动装置
PDF 文件使用 "pdfFactory Pro" 试用版本创建 虰
PLC电气控制技术
PLC电气控制技术
第四章 电气设计与CAD
第一节 电气控制电路设计基础
u 电气控制系统设计的基本内容:
Ø 拟定电气设计任务书 Ø 确定电气传动控制方案,选择电动机 Ø 设计电气控制原理图 Ø 选择电气元件,制定明细表 Ø 设计操作台、电气柜及非标准电气元件 Ø 设计电气设备布置总图、电气安装图以及电气接线图 Ø 编写电气说明书和使用操作说明书
不能吸合,严重时将使电路烧毁。
图4-6 电磁线圈的串并联
b)电感量相差悬殊的两个电器线圈,也不要并联连接。图4-6b中直流电 磁铁YA与继电器KA并联,在接通电源时可正常工作,但在断开电源时, 由于电磁铁线圈的电感比继电器线圈的电感大得多,所以断电时,继 电器很快释放,但电磁铁线圈产生的自感电动势可能使继电器又吸合 一段时间,从而造成继电器的误动作。解决方法可备用一个接触器的 触点来控制。如图4-6c所示。

西门子PLC编程应用全面教程

西门子PLC编程应用全面教程

3.革新型CPU(2/2)
CPU 317-2DP:具有大容量程序存储器,可用于要求很高的 应用;能够满足系列化机床、特殊机床以及车间应用的多任务 自动化系统;与集中式I/O和分布式I/O一起,可用作生产线上 的中央控制器;对二进制和浮点数运算具有较高的处理能力; 具有PROFIBUS DP主/从接口,可用于大规模的I/O配置,可用于 建立分布式I/O结构;可选用SIMATIC工程工具,能够在基于组 件的自动化中实现分布式智能系统。CPU运行时需要微 存储卡MMC。
CPU
IM
SM: SM: SM:
接口模块 DI DO AI
SM: AO
FM: - 计数
- 定位
- 闭环控制
CP: - 点-到-点
- PROFIBUS - 工业以太网
S7-300模块
导轨(机架) 系统背版总线
电源模块 (选项)
信号
CCPPUU状模态块MMC存储模卡块 及故障指(示CPU313以上)
CPU 314:可以进行高速处理以及中等规模的I/O配置,用于安 装中等规模的程序以及中等指令执行速度的程序。
CPU 315:具有中到大容量程序存储器,比较适用于大规模的 I/O配置。
CPU 315-2DP:具有中到大容量程序存储器和PROFIBUS DP主/ 接口,比较适用于大规模的I/O配置或建立分布式I/O系统。
5.故障安全型CPU(3/3)
CPU 317F-2DP:具有大容量程序存储器、一个PROFIBUS DP主/从接口、一个DP主/从MPI接口,两个接口可用于集成故 障安全模块,可以组态为一个故障安全型自动化系统,可满足 安全运行的需要。可以与故障安全型ET200M I/O模块进行集中 式和分布式连接;与故障安全型ET200S PROFIsafe I/O模块可 进行分布式连接;标准模块的集中式和分布式使用,可满足与 故障安全无关的应用。CPU运行时需要微存储卡 MMC。

西门子PLC控制系统接线方式与编程

西门子PLC控制系统接线方式与编程

西门子PLC控制系统 西门子PLC控制系统 PLC
一 西门子PLC系统操作说明
2.1项目创建 创建一个项目有两种方法:使用向导创建和直接创建。两者的区别在于, 直接创建将产生一个空项目,用户需要手动添加项目框架中的各项内容,新 建项目向导则向用户提供一系列选项,根据用户的选择,自动生成整个项目 的框架。 2.1.1使用向导创建项目 打开“SIMATIC Manager”,在“FILE”菜单下单击“New Project Wizard”, 弹出新建项目向导对话框。用向导创建项目共分为四步。 第一步:向导的使用说明 单击“Preview”按钮可以显示/隐藏对话框下放的预览窗口。在预览窗口 中可以立即看到不同选项对将生成的项目的影响。单击“Next”按钮进入下 一步操作。 第二步:选择CPU 在图中选择CPU型号和MPI地址。MPI地址的默认值是2, 单击“Next”按钮 进入下一步操作。 第三步:添加OB块 在这一步中,用户可以选择需要的OB块和使用的编程语言。单击“Next” 按钮进入下一步操作。 第四步:输入项目名称 在“Project name”一栏中输入项目名称(“西门子教育训练系统”),单 击“Finish”,一个新的项目就创建完了。
西门子PLC控制系统 西门子PLC控制系统 PLC
四. 西门子PLC系统故障排除
3)CPU内部系统故障 判断方法:SF,BF,5VDC,FRCE,RUN,STOP指示灯都闪烁。 故障原因:用STEP7读取诊断信息
P.7/50
西门子PLC控制系统 西门子PLC控制系统 PLC
四. 西门子PLC系统故障排除 4)软硬件故障 判断方法:SF,5VDC指示灯亮 故障原因:硬件故障: 1.在运行过程中插拔模板 2.系统处于RUN状态下插拔了一个PROFIBUS-DP上的分布式模板 3.系统处于RUN状态下插拔了一个PROFIBUS-IO上的分布式模板 4.具有诊断功能的模板报告了一个诊断中断 5.尝试访问一个不存在的或有故障的模板,连接器松动 软件故障: 1.TOD中断被使能和触发但是没有装入响应的块。(软件/组态故障) 2.已使能TOD中断的开始时间被跳过 3.由SFC32触发延时中断,但是没有装入响应的块(软件/组态故障) 4.过程中断被使能和触发但是内有装入响应的块(软件/组态故障) 5.生成状态报警,但是没有装载响应的OB55 6.生成与供应商相关的报警,但没有装载响应的OB57 7.生成更新报警,但没有装载响应的OB56 8.当刷新过程映象表时访问不存在或出故障的模板 9.循环超时。同时调用的中断OB太多 10.编程故障:块未装入;块编号错误; 定时器/计数器编号错误;读写访问区 错误 11.I/O访问故障 12.全局数据通讯故障例如对于全局数据通讯来说,DB的长度不够

电气设计图纸及西门子PLC编程

电气设计图纸及西门子PLC编程

李海波个人简历附加电气设计
一、控制要求
1、某生产线末端有一台三级皮带运输机,分别由M1、M
2、M3三台电机控制,有手动和
自动两种控制方式。

2、手动时,按下手动启动按钮,并按MI-M2-M3的顺序启动、M1启动后,要求按3S的
时间间隔自动启动M2、M3; 按下停止按钮,按M3-M2-M1的顺序停止,M3停止后,要求按2S 的时间间隔自动停止M2、M1。

3、自动控制时,按下自动启动按钮,按3S 时间间隔顺序启动,运行后经5s,按2S 的
时间间隔逆序停止,完成了一个工作循
环。

停5 秒后,又按以上循环经3 次工作循环后自动停止。

4、如遇紧急情况,可按下急停按钮停止所有电机的运行。

(电气画图使用EPLAN软件)
(自动控制采用西门子PLC200控制)
(符号表)
(附程序文件)
项目1_back.mwp。

西 门子V90伺服电气图纸及S7-1200 PLC程序(FB284控制V90)

西 门子V90伺服电气图纸及S7-1200 PLC程序(FB284控制V90)

校对.+COVER/1W+日期E INVT 目录 : =E+COVER/1 - =E+PTL/2+MEC/502017/4/24=编辑者栏 X:一自动生成的页被手工修改增补页字段目录日期页描述F06_001X 页=E+COVER/1XWUTAIFANG 封页/COVER 2016/5/19=E+INVT/1W 目录 : =E+COVER/1 - =E+PTL/22017/4/24=E+MEC/50W 伺服回路2017/4/24=E+MEC/56W 激光位移传感器回路2017/4/24=E+MEC/60W PLC LAYOUT 2017/4/24=E+MEC/65W NET VIEW 2017/4/24=E+MEC/402W 电柜安装板布局2017/4/24=E+MEC/405W 电柜标牌2016/12/5=E+TER/430W 端子图表 =E+MEC-X12017/4/24=E+PTL/2W 部件列表 : -2017/4/24校对.+TER/430W+日期E PTL 部件列表 : - 2017/4/24=类型号供应商部件列表F01_001数量名称设备标识符部件编号0+MEC-56L10+MEC-M10+MEC-50M16ES7214-1AG31-0XB0SIE 1SIE.6ES7214-1AG31-0XB0+MEC-60PLC1IC65N-C4A/2P SCHNEIDER 1SCH.IC65N-4A 2极空开 4A +MEC-50QF16SL3210-5FB10-2UF01SIE.6SL3210-5FB10-2UF0_2+MEC-50SV10+MEC-56U10+MEC-65U1程序块Main [OB1]Main 属性常规名称Main 编号1类型OB 语言LAD 编号自动信息标题"Main Program Sweep (Cy‐cle)"作者注释系列版本0.1用户自定义 ID名称数据类型默认值注释Input Initial_Call BoolInitial call of this OB Remanence Bool=True, if remanent data are available Temp tenpBool Constant网络 1:"常 OFF"%M0.0"常 OFF"%M0.0"常 OFF"%M0.0网络 2:"常 ON"%M0.1"常 ON"%M0.1"常 ON"%M0.1网络 3:"FC1_SVER"%FC1EN ENO程序块FC1_SVER [FC1]FC1_SVER 属性常规名称FC1_SVER 编号1类型FC 语言LAD 编号自动信息标题作者注释系列版本0.1用户自定义 ID名称数据类型默认值注释InputOutputInOutTempMode posInt SWBool SW-产品类型BBool SW-产品类型ABool POSITIONDInt ConstantReturnFC1_SVER Void网络 1:寻找参考点MOVE "伺服JOG 运行模式"%M100.0"伺服轴1寻参OK"%M20.12#"Mode pos"ENIN ENO OUT1网络 2:JOG 模 式MOVE "伺服JOG 运行模式"%M100.07#"Mode pos"ENIN ENO OUT1网络 3:MOVE "伺服轴1寻参OK"%M20.1"伺服JOG 运行模式"%M100.04#"Mode pos"ENIN ENO OUT1网络 4:Int>TON "上位允许检测"%I300.1#"Mode pos""伺服允许"%M10.0"伺服轴1寻参OK"%M20.1"伺服JOG 运行模式"%M100.0"检测OK 旋转伺服停止"%M79.0"IEC_Timer_0_DB"%DB1T#1S ...Time IN PT Q ET 网络 5:伺服启动"伺服允许"%M10.0"IEC_Timer_0_DB".Q "伺服启动"%M10.1"伺服轴1寻参OK"%M20.1网络 6:给定伺服位置1 位MOVE "伺服启动"%M10.1"工件类型2"%M77.1"工件类型1"%M77.01000#POSITIONENIN ENO OUT1网络 7:给定伺服位置2 位置值MOVE "伺服启动"%M10.1"工件类型1"%M77.0"工件类型2"%M77.12000#POSITIONENIN ENO OUT1网络 8:MOVE "检测OK 旋转伺服停止"%M79.00#POSITIONENIN ENO OUT1网络 9: 伺服off1 off2 off3 参考FB284说明书参数针脚分配ConfigEPOS"常 ON"%M0.1"Tag_14"%M53.0"Tag_15"%M53.1"Tag_8"%M53.2网络 10: 伺服原位信号 参考FB284说明书参数针脚分配ConfigEPOS"伺服原位开关"%I0.1"Tag_16"%M53.6网络 11:伺服限位 参考FB284说明书参数针脚分配ConfigEPOS"伺服限位+"%I0.2"伺服限位"%M51.6"伺服限位-"%I0.3网络 12:ConfigEPOS MD50 =MB50 MB51 MB52 MB53"SINA_POS"%FB284"SINA_POS_DB"%DB284#"Mode pos"110"伺服JOG+"%M40.1"伺服JOG-"%M40.2"伺服故障复位"%I300.6"伺服启动"%M10.1#POSITION1000100100100"Tag_13"%MD50280280............"伺服故障"%M78.0..."伺服位置到达"%M20.0"伺服轴1寻参OK"%M20.1"Tag_6"%MD64"Tag_3"%MD60.................."伺服准备好"%M203.0"伺服轴1寻参OK"%M20.1EnableAxisENModePos CancelTraversin gIntermediateSt opPositiveNegativeJog1Jog2FlyRef AckError ExecuteMode Position Velocity OverV OverAcc OverDec ConfigEPos HWIDSTW HWIDZSW ENO Error Status DiagID AxisEnabled AxisError AxisWarn AxisPosOkAxisRef ActVelocity ActPosition ActMode Lockout EPosZSW1EPosZSW2ActWarn ActFault程序块SINA_POS [FB284]SINA_POS 属性常规名称SINA_POS编号284类型FB语言SCL编号自动信息标题作者DRVDPS7注释系列DRIVES 版本 4.6用户自定义 ID SINA_POS名称数据类型默认值保持可从HMI/OPCUA 访问从HMI/OPCUA可写在 HMI 工程组态中可见设定值监控注释InputModePos Int0非保持True True True False EnableAxis Bool0非保持True True True False CancelTraversing Bool1非保持True True True False IntermediateStop Bool1非保持True True True False Positive Bool0非保持True True True False Negative Bool0非保持True True True False Jog1Bool0非保持True True True False Jog2Bool0非保持True True True False FlyRef Bool0非保持True True True False AckError Bool0非保持True True True False ExecuteMode Bool0非保持True True True False Position DInt0非保持True True True False Velocity DInt0非保持True True True False OverV Int100非保持True True True False OverAcc Int100非保持True True True False OverDec Int100非保持True True True False ConfigEPos DWord16#0000_0003非保持True True True False HWIDSTW HW_IO0非保持True True True False HWIDZSW HW_IO0非保持True True True False OutputError Bool0非保持True True True False Status Word0非保持True True True False DiagID Word0非保持True True True False AxisEnabled Bool0非保持True True True False AxisError Bool0非保持True True True False AxisWarn Bool0非保持True True True False AxisPosOk Bool0非保持True True True False AxisRef Bool0非保持True True True False ActVelocity DInt0非保持True True True False ActPosition DInt0非保持True True True False ActMode Int0非保持True True True False Lockout Bool0非保持True True True False EPosZSW1Word0非保持True True True False EPosZSW2Word0非保持True True True False ActWarn Word0非保持True True True False ActFault Word0非保持True True True False InOutStaticsbOff1Edge Bool0非保持True True True False sbOff1Bool0非保持True True True False sbExecuteEdge Bool0非保持True True True False sbExecute Bool0非保持True True True False sbRefTypEdge Bool0非保持True True True False sbRefTyp Bool0非保持True True True False sbMdiStart Bool0非保持True True True False sbMdiStartEdge Bool0非保持True True True False sbRefStart Bool0非保持True True True False sbJogInc Bool0非保持True True True False sbReady Bool0非保持True True True False sbIOp Bool0非保持True True True False sbAccel Bool0非保持True True True False sbDecel Bool0非保持True True True False sbAlarm Bool0非保持True True True False sbFault Bool0非保持True True True False sbFWD Bool0非保持True True True False sbBWD Bool0非保持True True True False sbBusy Bool0非保持True True True False swStatus Word16#0000非保持True True True False swEPosZSW1Word16#0000非保持True True True False swEPosZSW2Word16#0000非保持True True True False名称数据类型默认值保持可从HMI/OPCUA 访问从HMI/OPCUA可写在 HMI 工程组态中可见设定值监控注释siJogIncCyc Int0非保持True True True FalsesiMdiStartCyc Int0非保持True True True FalsesiRefActRetry Int0非保持True True True FalsesiModePos Int0非保持True True True FalsesiModePosMax Int14非保持True True True FalsesiCycWait Int5非保持True True True FalsesiRetryMax Int15非保持True True True FalsesbModePos Bool0非保持True True True FalsesxSendBuf Struct非保持True True True FalseSTW1Word WORD#16#0000非保持True True True FalseEPosSTW1Word WORD#16#0000非保持True True True FalseEPosSTW2Word WORD#16#0000非保持True True True FalseSTW2Word WORD#16#0000非保持True True True FalseOverrideV Word WORD#16#0000非保持True True True FalsePosition DWord DWORD#16#0000_0000非保持True True True FalseVelocity DWord DWORD#16#0000_0000非保持True True True FalseOverrideA Word WORD#16#0000非保持True True True FalseOverrideD Word WORD#16#0000非保持True True True FalseReserve Word WORD#16#0000非保持True True True FalsesxRecvBuf Struct非保持True True True FalseZSW1Word WORD#16#0000非保持True True True FalseEPosZSW1Word WORD#16#0000非保持True True True FalseEPosZSW2Word WORD#16#0000非保持True True True FalseZSW2Word WORD#16#0000非保持True True True FalseNotUsed Word WORD#16#0000非保持True True True FalsePosition DWord DWORD#16#0000_0000非保持True True True FalseVelocity DWord DWORD#16#0000_0000非保持True True True FalseErrNr Word WORD#16#0000非保持True True True FalseWarnNr Word WORD#16#0000非保持True True True FalseReserve Word WORD#16#0000非保持True True True False TemppiRetSFC IntpiCount IntswSendBuf Array[0..11] ofWordswSendBuf[0]WordswSendBuf[1]WordswSendBuf[2]WordswSendBuf[3]WordswSendBuf[4]WordswSendBuf[5]WordswSendBuf[6]WordswSendBuf[7]WordswSendBuf[8]WordswSendBuf[9]WordswSendBuf[10]WordswSendBuf[11]WordswRecvBuf Array[0..11] ofWordswRecvBuf[0]WordswRecvBuf[1]WordswRecvBuf[2]WordswRecvBuf[3]WordswRecvBuf[4]WordswRecvBuf[5]WordswRecvBuf[6]WordswRecvBuf[7]WordswRecvBuf[8]WordswRecvBuf[9]WordswRecvBuf[10]WordswRecvBuf[11]WordConstant0001// zyklische Kommunikation (PZD-Daten)0002// zyklische Kommunikation zwischen dem SINAMICS S120 und der Steuerung. Wird in der HW-Config Std.TLG 111 projek-tiert,0003// so werden in jedem Bus-Zyklus 12 PZD-Wörter hin und wieder zurück übertragen.0004// Die Parametrierung dieser Wörter sind der SINAMICS-Dokumentation zu entnehmen. Entsprechend müssen dann in dem zugeordneten DB die Bits0005// und Bytes versorgt werden. Es besteht aber auch die Möglichkeit die Rahmentypen frei zu0006// projektieren00070008// Betriebsart ermitteln0009IF #ModePos > #siModePosMax THEN00100013 #swStatus := 16#8202;0014ELSIF #ModePos < 1THEN00150016 #sbModePos := FALSE;0017 #Error := True;0018 #swStatus := 16#8202;0019ELSE0020// Betriebsartenwechsel ist nur möglich, wenn die Achse nicht beschleunigt oder nicht verzögert 0021// und die Geschwindigkeit Null ist0022IF NOT #sbFWD AND NOT #sbBWD AND NOT #sbAccel AND NOT #sbDecel THEN00230024 #sbModePos := TRUE;0025 #siModePos := #ModePos;00260027// Fehler wieder zurücknehmen, wenn er mal ausgelöst wurde0028IF #swStatus = 16#8202THEN0029 #swStatus := 16#7002;0030 #Error := False;0031END_IF;0032END_IF;0033END_IF;00340035// Überprüfung der analogen Eingabewerte, ob sie innerhalb des möglichen Bereiches liegen0036// Geschwindigkeitsoverride (0% - 199%, 100% => W#16#4000)0037IF (#OverV < 0) OR (#OverV > 199) THEN0038 #swStatus := 16#8203;0039 #Error := True;0040ELSE0041// Geschwindigkeitsoverride in den Sendepuffer eintragen0042 #sxSendBuf.OverrideV := INT_TO_WORD(REAL_TO_INT(16384.0 * (INT_TO_REAL(#OverV) / 100.0)));0043END_IF;00440045// Beschleunigungsoverride (0% - 100%, 100% => W#16#4000)0046IF (#OverAcc < 0) OR (#OverAcc > 100) THEN0047 #swStatus := 16#8203;0048 #Error := True;0049ELSE0050// Beschleunigungsoverride in den Sendepuffer eintragen0051 #sxSendBuf.OverrideA := INT_TO_WORD(REAL_TO_INT(16384.0 * (INT_TO_REAL(#OverAcc) / 100.0))); 0052END_IF;00530054// Verzögerungsoverride (0% - 100%, 100% => W#16#4000)0055IF (#OverDec < 0) OR (#OverDec > 100) THEN0056 #swStatus := 16#8203;0057 #Error := True;0058ELSE0059// Verzögerungsoverride in den Sendepuffer eintragen0060 #sxSendBuf.OverrideD := INT_TO_WORD(REAL_TO_INT(16384.0 * (INT_TO_REAL(#OverDec) / 100.0))); 0061END_IF;00620063// Fehler wieder zurücknehmen, wenn er mal ausgelöst wurde0064IF NOT (#OverV < 0) AND NOT (#OverV > 199) AND NOT (#OverAcc < 0) AND NOT (#OverAcc > 100) AND 0065 NOT (#OverDec < 0) AND NOT (#OverDec > 100) THEN0066IF #swStatus = 16#8203THEN0067 #swStatus := 16#7002;0068 #Error := False;0069END_IF;0070END_IF;00710072// Positionssollwert0073// Positionssollwert in den Sendepuffer eintragen0074 #sxSendBuf.Position := DINT_TO_DWORD(#Position);00750076// Geschwindigkeitssollwert (Begrenzung / Überwachung0077// Geschwindigkeitssollwert in den Sendepuffer eintragen0078 #sxSendBuf.Velocity := DINT_TO_DWORD(#Velocity);00790080// Einschalten bzw. Ausschalten des Antriebes erkennen0081IF #EnableAxis AND NOT #sbOff1Edge AND NOT #sbBusy AND #sbModePos THEN0082 #sbOff1 := True;0083END_IF;0084// Einschalten bzw. Ausschalten des Antriebes Flanke merken0085 #sbOff1Edge := #EnableAxis AND NOT #sbBusy;00860087// Einschaltflankenmerker wieder zurücksetzen0088IF NOT #EnableAxis THEN0089 #sbOff1 := False;0090END_IF;00910092// Fliegendes Referenzieren aktivieren erkennen0093IF #FlyRef AND NOT #sbRefTypEdge THEN0094 #sbRefTyp := True;0095END_IF;0096// Fliegendes Referenzieren aktivieren Flanke merken0097 #sbRefTypEdge := #FlyRef;00980099// Fliegendes Referenzieren Flankenmerker wieder zurücksetzen0101 #sbRefTyp := False;0102 #siRefTypCyc := 0;0103END_IF;01040105// Verfahrauftrag aktivieren erkennen0106IF #ExecuteMode AND NOT #sbExecuteEdge THEN0107 #sbExecute := True;0108END_IF;0109// Verfahrauftrag aktivieren Flanke merken0110 #sbExecuteEdge := #ExecuteMode;01110112// Verfahrauftragflankenmerker wieder zurücksetzen0113IF NOT #ExecuteMode THEN0114 #sbExecute := False;0115 #siExecuteCyc := 0;0116END_IF;01170118// Betriebsart MDI / Sollwertdirektvorgabe Flanke merken0119(*IF #sxSendBuf.sxEPosSTW1.MdiStart AND NOT #sbMdiStartEdge THEN0120 #sbMdiStart := True;0121 END_IF;0122 // Betriebsart MDI / Sollwertdirektvorgabe Flanke merken0123 #sbMdiStartEdge := #sxSendBuf.sxEPosSTW1.MdiStart AND NOT #Busy;*)01240125// Verfahrauftragflankenmerker wieder zurücksetzen0126(*IF NOT #sxSendBuf.sxEPosSTW1.MdiStart THEN0127 #sbMdiStart := False;0128 #siMdiStartCyc := 0;0129 END_IF;*)01300131IF #sxSendBuf.EPosSTW1.%X15 AND NOT #sbMdiStartEdge THEN0132 #sbMdiStart := True;0133END_IF;0134// Betriebsart MDI / Sollwertdirektvorgabe Flanke merken0135 #sbMdiStartEdge := #sxSendBuf.EPosSTW1.%X15 AND NOT #sbBusy;01360137// Verfahrauftragflankenmerker wieder zurücksetzen0138IF NOT #sxSendBuf.EPosSTW1.%X15 THEN0139 #sbMdiStart := False;0140 #siMdiStartCyc := 0;0141END_IF;01420143// Schreibdaten zusammenstellen0144// Steuerword STW1 für alle Betriebsart aufbereiten0145(*#sxSendBuf.sxSTW1.RejTrvTsk := #RejTrvTsk;0146 #sxSendBuf.sxSTW1.IntMStop := #IntMStop;0147 #sxSendBuf.sxSTW1.AckFault := #AckFlt;*)01480149 #sxSendBuf.STW1.%X4 := #CancelTraversing;0150 #sxSendBuf.STW1.%X5 := #IntermediateStop;0151 #sxSendBuf.STW1.%X7 := #AckError;0152 #sxSendBuf.STW1.%X1 := TRUE;0153 #sxSendBuf.STW1.%X2 := TRUE;0154 #sxSendBuf.STW1.%X3 := TRUE;0155 #sxSendBuf.STW1.%X10 := TRUE;01560157// Hauptbetriebsart "Positionieren / manueller Sollwertvorgabe (MDI)"0158// Betriebsart "Positionieren Relativ positiv" oder "Positionieren Relativ negativ" 0159IF (#siModePos = 1AND #sbModePos) THEN01600161// Antrieb einschalten0162//#sxSendBuf.sxSTW1.Off1 := #sbOff1;0163 #sxSendBuf.STW1.%X0 := #sbOff1;01640165// nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte 0166(*#sxSendBuf.sxSTW1.Jog1 := False;0167 #sxSendBuf.sxSTW1.Jog2 := False;0168 #sxSendBuf.sxEPosSTW1.MdiTyp := False;0169 #sxSendBuf.sxEPosSTW1.MdiPos := False;0170 #sxSendBuf.sxEPosSTW1.MdiNeg := False;0171 #sxSendBuf.sxEPosSTW1.MdiSetup := False;0172 #sxSendBuf.sxEPosSTW2.SetRefPt := False;0173 #sxSendBuf.sxEPosSTW2.JogInc := False;0174 #sxSendBuf.sxEPosSTW2.RefStDi := False;0175 #sxSendBuf.sxSTW1.RefStart := False;0176 #sxSendBuf.sxEPosSTW2.RefTyp := False;0177 #sxSendBuf.sxEPosSTW1.MdiStart := False;*)0178 #sxSendBuf.STW1.%X8 := False;0179 #sxSendBuf.STW1.%X9 := False;0180 #sxSendBuf.EPosSTW1.%X8 := False;0181 #sxSendBuf.EPosSTW1.%X9 := False;0182 #sxSendBuf.EPosSTW1.%X10 := False;0183 #sxSendBuf.EPosSTW1.%X14 := False;0184 #sxSendBuf.EPosSTW2.%X1 := False;0185 #sxSendBuf.EPosSTW2.%X5 := False;0186 #sxSendBuf.EPosSTW2.%X9 := False;0187 #sxSendBuf.STW1.%X11 := False;01910192// Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist,0193// dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden0194IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN01950196// Betriebsart MDI / Sollwertdirektvorgabe setzen0197//#sxSendBuf.sxEPosSTW1.MdiStart := True;0198 #sxSendBuf.EPosSTW1.%X15 := True;01990200// Positioniertyp auf relatives Positionieren stellen0201//#sxSendBuf.sxEPosSTW1.MdiTyp := False;0202 #sxSendBuf.EPosSTW1.%X8 := False;02030204// die Richtungswahl für das Positionieren auf positive Richtung oder negative Richtung einstellen0205IF #Positive AND NOT #Negative THEN02060207// positive Richtung0208//#sxSendBuf.sxEPosSTW1.MdiPos := True;0209 #sxSendBuf.EPosSTW1.%X9 := True;02100211// negative Richtung0212//#sxSendBuf.sxEPosSTW1.MdiNeg := False;0213 #sxSendBuf.EPosSTW1.%X10 := False;02140215// die Richtungswahl für das Positionieren auf negative Richtung einstellen0216ELSIF NOT #Positive AND #Negative THEN02170218// positive Richtung0219//#sxSendBuf.sxEPosSTW1.MdiPos := False;0220 #sxSendBuf.EPosSTW1.%X9 := False;02210222// negative Richtung0223//#sxSendBuf.sxEPosSTW1.MdiNeg := True;0224 #sxSendBuf.EPosSTW1.%X10 := True;02250226// die Richtungswahl für das Positionieren auf keine Richtung einstellen0227ELSE02280229// positive Richtung0230//#sxSendBuf.sxEPosSTW1.MdiPos := False;0231 #sxSendBuf.EPosSTW1.%X9 := False;02320233// negative Richtung0234//#sxSendBuf.sxEPosSTW1.MdiNeg := False;0235 #sxSendBuf.EPosSTW1.%X10 := False;02360237END_IF;02380239// Nach dem Einschalten des Antriebes und dem Betriebsart MDI / Sollwertvorgabe starten,0240// ein Paar Zyklen warten bevor die Flanke für die Sollwertübernahme MDI gesetzt werden kann0241IF #sbMdiStart AND (#siMdiStartCyc < #siCycWait) THEN0242 #siMdiStartCyc := #siMdiStartCyc + 1;0243ELSE0244// Flanke Sollwertübernahme MDI0245//#sxSendBuf.sxSTW1.TrvStart := #Execute;0246 #sxSendBuf.STW1.%X6 := #ExecuteMode;02470248END_IF;02490250// "Fliegendes Referentieren" aktivieren0251// "Fliegendes Referenzieren" erst nach Einschalten des Antriebes möglich0252IF #sbRefTyp THEN02530254// Referenziertyp auf "Fliegendes Referenzieren" einstellen0255//#sxSendBuf.sxEPosSTW2.RefTyp := True;0256 #sxSendBuf.EPosSTW2.%X8 := True;02570258// Nach der Anwahl des Referenziertyps "Fliegendes Referenzieren",0259// ein Zyklus später kann das Referenzieren gestartet0260IF (#siRefTypCyc = 0) THEN0261 #siRefTypCyc := #siRefTypCyc + 1;0262ELSE0263// Referenzieren starten0264//#sxSendBuf.sxSTW1.RefStart := True;0265 #sxSendBuf.STW1.%X11 := True;02660267END_IF;0268END_IF;0269END_IF;02700271// Betriebsart "Positionieren Absolut" oder "Positonieren Absolut positiv" oder "Positionieren Absolut negativ" 0272ELSIF #siModePos = 2AND #sbModePos THEN02730274// Antrieb einschalten0278// nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte0279(*#sxSendBuf.sxSTW1.Jog1 := False;0280 #sxSendBuf.sxSTW1.Jog2 := False;0281 #sxSendBuf.sxEPosSTW1.MdiTyp := False;0282 #sxSendBuf.sxEPosSTW1.MdiPos := False;0283 #sxSendBuf.sxEPosSTW1.MdiNeg := False;0284 #sxSendBuf.sxEPosSTW1.MdiSetup := False;0285 #sxSendBuf.sxEPosSTW2.SetRefPt := False;0286 #sxSendBuf.sxEPosSTW2.JogInc := False;0287 #sxSendBuf.sxEPosSTW2.RefStDi := False;0288 #sxSendBuf.sxSTW1.RefStart := False;0289 #sxSendBuf.sxEPosSTW2.RefTyp := False;0290 #sxSendBuf.sxEPosSTW1.MdiStart := False;*)0291 #sxSendBuf.STW1.%X8 := False;0292 #sxSendBuf.STW1.%X9 := False;0293 #sxSendBuf.EPosSTW1.%X8 := False;0294 #sxSendBuf.EPosSTW1.%X9 := False;0295 #sxSendBuf.EPosSTW1.%X10 := False;0296 #sxSendBuf.EPosSTW1.%X14 := False;0297 #sxSendBuf.EPosSTW2.%X1 := False;0298 #sxSendBuf.EPosSTW2.%X5 := False;0299 #sxSendBuf.EPosSTW2.%X9 := False;0300 #sxSendBuf.STW1.%X11 := False;0301 #sxSendBuf.EPosSTW2.%X8 := False;0302 #sxSendBuf.EPosSTW1.%X15 := False;03030304// Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist,0305// dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden0306IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN03070308// Betriebsart MDI / Sollwertdirektvorgabe setzen0309//#sxSendBuf.sxEPosSTW1.MdiStart := True;0310 #sxSendBuf.EPosSTW1.%X15 := True;03110312// Positioniertyp auf absolutes Positionieren stellen0313//#sxSendBuf.sxEPosSTW1.MdiTyp := True;0314 #sxSendBuf.EPosSTW1.%X8 := True;03150316// die Richtungswahl für das Positionieren auf positive Richtung oder negative Richtung einstellen0317IF #Positive AND NOT #Negative THEN03180319// positive Richtung0320//#sxSendBuf.sxEPosSTW1.MdiPos := True;0321 #sxSendBuf.EPosSTW1.%X9 := True;03220323// negative Richtung0324//#sxSendBuf.sxEPosSTW1.MdiNeg := False;0325 #sxSendBuf.EPosSTW1.%X10 := False;03260327// die Richtungswahl für das Positionieren auf negative Richtung einstellen0328ELSIF NOT #Positive AND #Negative THEN03290330// positive Richtung0331//#sxSendBuf.sxEPosSTW1.MdiPos := False;0332 #sxSendBuf.EPosSTW1.%X9 := False;03330334// negative Richtung0335//#sxSendBuf.sxEPosSTW1.MdiNeg := True;0336 #sxSendBuf.EPosSTW1.%X10 := True;03370338// die Richtungswahl für das Positionieren auf keine Richtung einstellen0339ELSE03400341// positive Richtung0342//#sxSendBuf.sxEPosSTW1.MdiPos := False;0343 #sxSendBuf.EPosSTW1.%X9 := False;03440345// negative Richtung0346//#sxSendBuf.sxEPosSTW1.MdiNeg := False;0347 #sxSendBuf.EPosSTW1.%X10 := False;03480349END_IF;03500351// Nach dem Einschalten des Antriebes und dem Betriebsart MDI / Sollwertvorgabe starten,0352// ein Paar Zyklen warten bevor die Flanke für die Sollwertübernahme MDI gesetzt werden kann0353IF #sbMdiStart AND (#siMdiStartCyc < #siCycWait) THEN0354 #siMdiStartCyc := #siMdiStartCyc + 1;0355ELSE0356// Flanke Sollwertübernahme MDI0357//#sxSendBuf.sxSTW1.TrvStart := #Execute;0358 #sxSendBuf.STW1.%X6 := #ExecuteMode;03590360END_IF;03610363// "Fliegendes Referenzieren" erst nach Einschalten des Antriebes möglich0364IF #sbRefTyp THEN03650366// Referenziertyp auf "Fliegendes Referenzieren" einstellen0367//#sxSendBuf.sxEPosSTW2.RefTyp := True;0368 #sxSendBuf.EPosSTW2.%X8 := True;03690370// Nach der Anwahl des Referenziertyps "Fliegendes Referenzieren",0371// ein Zyklus später kann das Referenzieren gestartet0372IF (#siRefTypCyc = 0) THEN0373 #siRefTypCyc := #siRefTypCyc + 1;0374ELSE0375// Referenzieren starten0376//#sxSendBuf.sxSTW1.RefStart := True;0377 #sxSendBuf.STW1.%X11 := True;03780379END_IF;0380END_IF;0381END_IF;03820383// Betriebsart "Positionieren als Einrichten positiv" oder "Positionieren als Einrichten negativ"0384ELSIF #siModePos = 3AND #sbModePos THEN03850386// Antrieb einschalten0387//#sxSendBuf.sxSTW1.Off1 := #sbOff1;0388 #sxSendBuf.STW1.%X0 := #sbOff1;03890390// nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte0391(*#sxSendBuf.sxSTW1.Jog1 := False;0392 #sxSendBuf.sxSTW1.Jog2 := False;0393 #sxSendBuf.sxEPosSTW1.MdiTyp := False;0394 #sxSendBuf.sxEPosSTW1.MdiPos := False;0395 #sxSendBuf.sxEPosSTW1.MdiNeg := False;0396 #sxSendBuf.sxEPosSTW1.MdiSetup := False;0397 #sxSendBuf.sxEPosSTW2.SetRefPt := False;0398 #sxSendBuf.sxEPosSTW2.JogInc := False;0399 #sxSendBuf.sxEPosSTW2.RefStDi := False;0400 #sxSendBuf.sxSTW1.RefStart := False;0401 #sxSendBuf.sxEPosSTW2.RefTyp := False;0402 #sxSendBuf.sxEPosSTW1.MdiStart := False;*)0403 #sxSendBuf.STW1.%X8 := False;0404 #sxSendBuf.STW1.%X9 := False;0405 #sxSendBuf.EPosSTW1.%X8 := False;0406 #sxSendBuf.EPosSTW1.%X9 := False;0407 #sxSendBuf.EPosSTW1.%X10 := False;0408 #sxSendBuf.EPosSTW1.%X14 := False;0409 #sxSendBuf.EPosSTW2.%X1 := False;0410 #sxSendBuf.EPosSTW2.%X5 := False;0411 #sxSendBuf.EPosSTW2.%X9 := False;0412 #sxSendBuf.STW1.%X11 := False;0413 #sxSendBuf.EPosSTW2.%X8 := False;0414 #sxSendBuf.EPosSTW1.%X15 := False;04150416// Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist,0417// dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden0418IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN04190420// Betriebsart MDI / Sollwertdirektvorgabe setzen0421//#sxSendBuf.sxEPosSTW1.MdiStart := True;0422 #sxSendBuf.EPosSTW1.%X15 := True;04230424// Positioniertyp auf absolutes Positionieren stellen0425//#sxSendBuf.sxEPosSTW1.MdiTyp := True;0426 #sxSendBuf.EPosSTW1.%X8 := True;04270428// die Anwahl für MDI Modus auf Einrichten einstellen0429//#sxSendBuf.sxEPosSTW1.MdiSetup := True;0430 #sxSendBuf.EPosSTW1.%X14 := True;04310432// die Richtungswahl für das Positionieren auf positive Richtung oder negative Richtung einstellen0433IF #Positive AND NOT #Negative THEN04340435// positive Richtung0436//#sxSendBuf.sxEPosSTW1.MdiPos := True;0437 #sxSendBuf.EPosSTW1.%X9 := True;04380439// negative Richtung0440//#sxSendBuf.sxEPosSTW1.MdiNeg := False;0441 #sxSendBuf.EPosSTW1.%X10 := False;04420443// die Richtungswahl für das Positionieren auf negative Richtung einstellen0444ELSIF NOT #Positive AND #Negative THEN04450446// positive Richtung0447//#sxSendBuf.sxEPosSTW1.MdiPos := False;0448 #sxSendBuf.EPosSTW1.%X9 := False;0450// negative Richtung0451//#sxSendBuf.sxEPosSTW1.MdiNeg := True;0452 #sxSendBuf.EPosSTW1.%X10 := True;04530454// die Richtungswahl für das Positionieren auf keine Richtung einstellen0455ELSE04560457// positive Richtung0458//#sxSendBuf.sxEPosSTW1.MdiPos := False;0459 #sxSendBuf.EPosSTW1.%X9 := False;04600461// negative Richtung0462//#sxSendBuf.sxEPosSTW1.MdiNeg := False;0463 #sxSendBuf.EPosSTW1.%X10 := False;04640465END_IF;04660467// Nach dem Einschalten des Antriebes und dem Betriebsart MDI / Sollwertvorgabe starten,0468// ein Paar Zyklen warten bevor die Flanke für die Sollwertübernahme MDI gesetzt werden kann0469IF #sbMdiStart AND (#siMdiStartCyc < #siCycWait) THEN0470 #siMdiStartCyc := #siMdiStartCyc + 1;0471ELSE0472// Flanke Sollwertübernahme MDI0473//#sxSendBuf.sxSTW1.TrvStart := #Execute;0474 #sxSendBuf.STW1.%X6 := #ExecuteMode;04750476END_IF;04770478// "Fliegendes Referentieren" aktivieren0479// "Fliegendes Referenzieren" erst nach Einschalten des Antriebes möglich0480IF #sbRefTyp THEN04810482// Referenziertyp auf "Fliegendes Referenzieren" einstellen0483//#sxSendBuf.sxEPosSTW2.RefTyp := True;0484 #sxSendBuf.EPosSTW2.%X8 := True;04850486// Nach der Anwahl des Referenziertyps "Fliegendes Referenzieren",0487// ein Zyklus später kann das Referenzieren gestartet0488IF (#siRefTypCyc = 0) THEN0489 #siRefTypCyc := #siRefTypCyc + 1;0490ELSE0491// Referenzieren starten0492//#sxSendBuf.sxSTW1.RefStart := True;0493 #sxSendBuf.STW1.%X11 := True;04940495END_IF;0496END_IF;0497END_IF;04980499// Hauptbetriebsart "Referenzieren" (Reference)0500// Betriebsart "Referenzieren - Referenzpunktfahrt positiv" oder "Referenzieren - Referenzpunktfahrt negativ"0501ELSIF #siModePos = 4AND #sbModePos THEN05020503// Antrieb einschalten0504//#sxSendBuf.sxSTW1.Off1 := #sbOff1;0505 #sxSendBuf.STW1.%X0 := #sbOff1;05060507// nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte0508(*#sxSendBuf.sxSTW1.Jog1 := False;0509 #sxSendBuf.sxSTW1.Jog2 := False;0510 #sxSendBuf.sxEPosSTW1.MdiStart := False;0511 #sxSendBuf.sxEPosSTW2.SetRefPt := False;0512 #sxSendBuf.sxEPosSTW2.JogInc := False;0513 #sxSendBuf.sxEPosSTW2.RefTyp := False;0514 #sxSendBuf.sxSTW1.RefStart := False;0515 #sxSendBuf.sxEPosSTW2.RefStDi := False;*)0516 #sxSendBuf.STW1.%X8 := False;0517 #sxSendBuf.STW1.%X9 := False;0518 #sxSendBuf.EPosSTW1.%X15 := False;0519 #sxSendBuf.EPosSTW2.%X1 := False;0520 #sxSendBuf.EPosSTW2.%X5 := False;0521 #sxSendBuf.EPosSTW2.%X8 := False;0522 #sxSendBuf.STW1.%X11 := False;0523 #sxSendBuf.EPosSTW2.%X9 := False;05240525// Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist,0526// dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden0527IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN05280529// Referenzieren starten0530//#sxSendBuf.sxSTW1.RefStart := #Execute;0531 #sxSendBuf.STW1.%X11 := #ExecuteMode;05320533// die Richtungswahl für das Referenzpunktfahrt positiv einstellen0534IF #Positive AND NOT #Negative THEN0535。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

李海波个人简历附加电气设计
一、控制要求
1、某生产线末端有一台三级皮带运输机,分别由M1、M
2、M3三台电机控制,有手动和
自动两种控制方式。

2、手动时,按下手动启动按钮,并按MI-M2-M3的顺序启动、M1启动后,要求按3S的
时间间隔自动启动M2、M3; 按下停止按钮,按M3-M2-M1的顺序停止,M3停止后,要求按2S 的时间间隔自动停止M2、M1。

3、自动控制时,按下自动启动按钮,按3S 时间间隔顺序启动,运行后经5s,按2S 的
时间间隔逆序停止,完成了一个工作循
环。

停5 秒后,又按以上循环经3 次工作循环后自动停止。

4、如遇紧急情况,可按下急停按钮停止所有电机的运行。

(电气画图使用EPLAN软件)
(自动控制采用西门子PLC200控制)
(符号表)
(附程序文件)
项目1_back.mwp。

相关文档
最新文档