- 发布
- 浔之漫智控技术(上海)有限公司
- 电话
- 15821971992
- 手机
- 15821971992
- 发布时间
- 2023-07-19 17:06:40
咸宁地区西门子模块总代理
前面和大家一起进行了西门子PLC的一些基础知识及编程元件的学习,下面和大家一起探讨一下具体应用程序的编写方法,我们以运料小车控制系统的编程方法为例进行讲解。
运料车主要用于搬运加工工件,在工矿企业的生产车间是比较常见的运输设备。运料车由三相交流异步电动机进行驱动。其运动方向的改变主要是通过电动机的正反转来实现。控制系统正常运行时,一般设为连续运行(自动控制)状态。但在调试系统或设备维修过程中,往往需把系统设为点动控制(手动控制),所以运料车的控制实际上就是电动机点动、连续正反转控制。
运料车由三相交流异步电动机拖动,可左右运行,如图1所示。具体控制要求如下:
图 1
1、点动控制时,按点动正转按钮,电动机正转点动运行,运料年左行;按点动反转按钮,电动机反转点动运行,运料车右行。
2、连续控制时,按正转按钮,电动机连续正转,运科车连续左行;按反转按钮,电动机连续反转,运料车连续右行;按停止按钮,运料车随时停止。
3、运料车应有软、硬件互锁控制功能
要求用前面已经学过的编程元件和方法试着编写PLC控制编程(梯形图):
(1)用触点线圈指令编程;
(2)用置位复位指令编程;
(3)用跳转与跳转标号指令编程。
一、设计电气原理图
1、选择电器元件及PLC型号
输入信号:点动正转按钮1个、点动反转按钮1个、连续正转按钮1个、连续反转按纽1个、停止按钮1个,输入信号共5个,要占用5个输入端子,所以PLC输入至少需5点。(这里说明一下,限位因篇幅的原因,不做考虑)。
输出信号:正转接触器1个、反转接触器1个,占用PLC两个输出端子,所以PLC输出至少需2点。查西门子PLC用户手册可知,CPU221主机输入6点、输出4点,能满足实际需求的输入5点输出2点的要求。因PLC控制电动机,所以继电器输出型的PLC就能满足要求,选择CPU221继电器输出型的PLC即可。
2、设计电气原理图
电气原理图见图2所示。
图 2
二、控制程序设计
1、用触点指令编程
运料车的控制要求既有点动又有连续正反转控制功能, 用中间继电器进行状态转换后就很较易实现要求,如图3所示,网络1、网络3实现了既能点动又能连续的正转控制,网络2、网络4实现了既能点动又能连续的反转控制。
图 3
2、用置位复位指令编程
用置位位复位指令编程也可以实现电动机连续控制,其运行程序如图4(1)所示。
图 4(1)
点动控制不能用置位复位指令,只能用触点线圈指令编程,既有点动、又有连续控制功能的电动机运行程序如图4(2)所示。
图 4(2)
3、用跳转与跳转标号指令编程
前面用5个按钮实现运料车点动,连续启停控制,其实点动、连续控制方式也可用旋转开关进行方式选择,这时正转反转停止按钮仍需要,电气原理图稍有变化。输入信号:旋钮开关1个,正转启动校钮1个,反转启动按钮1个,停止按钮1个,输入至少需4点。输出信号同前,正反转接触器线圈各1个,至少需2点。仍选择CPU221 (输入6点,输出4点)继电器输出型。
电气原理图可在图1的基础上稍作修改,输入信号少用个按钮, 在此不再重画电气原理图,程序中I0.3假设接通为点动,断开为连续,控制程序如图5所示。
图 5
前面也提到过,任何一个实际控制程序,可以用不同的方法来进行编写。究竟什么样的程序是合适的,就要看程序是不是编写简单、维护起来方便,还有就是运行可靠,尽量减少冗余。
西门子PLC指令翻译
指令(英文全称意思):指令含义
1、LD ( Load 装载 ):动合触点
2、LDN ( Load Not 不装载 ):动断触点
3、A ( And 与 动合):用于动合触点串联
4、AN ( A
nd Not 与 动断 ):用于动断触点串联
5、O ( Or 或 动合 ) :用于动合触点并联
6、ON ( Or Not 或 动断 ):用于动断触点并联
7、
= ( Out 输出 ):用于线圈输出
8、OLD ( Or Lode):块或
9、ALD ( And Lode):块与
10、LPS ( Logic Push ):逻辑入栈
11、LRD ( Logic Read ):逻辑读栈
12、LPP ( Logic Pop ):逻辑出栈
13、NOT ( not 并非 ):非
14、NOP ( No Operation Performed ):无操作
15、AENO ( And ENO ):指令盒输出端ENO相与
16、S ( Set 放置 ):置1
17、R ( Reset 重置,清零 ):清零
18、P ( Positive):上升沿
19、N ( Negative):下降沿
20、TON ( On_Delay Timer ):接通延时定时器
21、TONR ( Retentive On_Delay Timer ):有记忆接通延时定时器
22、TOF ( Off_ Delay Timer ):断开延时定时器
23、CTU ( Count Up ):增计数器
24、CTD ( Count Down ):减计数器
25、CTDU ( Count Up/ Count Down ):增减计数器
26、ADD ( add 加 ) :加注意
//ADD_I (_ I 表示整数)
ADD_DI( DI表示双字节整数)
ADD-R (R 表示实数)
它们都是加运算只是数的大小不同。
27、SUB ( Subtract 减去,减少):减
28、MUL ( Multiply ):乘
29、DIV ( Divide ):除
30、SQRT ( Square root ):求平方根
31、LN ( Napierian Logarithm 自然对数 ):求自然对数
32、EXP ( Exponential 指数的 ):求指数
33、INC_B ( Increment 增加 ):增1
//其中_B代表数据类型 还有W(字节)、DW双字后面几个都是这样的。
34、DEC_B ( Decrement 减少 ):减1
35、WAND_B ( Word and 与命令 ):逻辑与
36、WOR_B ( Word or 或命令):逻辑或
37、WXOR_B ( Word exclusive or 异或命令):逻辑异或
38、INV_B ( Inverse 相反 ):取反
39、MOV _B ( Move 移动 ):数据传送
40、BLKMOV_B ( Block Move 块移动):数据块传送
41、SWAP ( Swap 交换 ):字节交换
42、FILL ( Fill 填充 ):字填充
43、ROL_B ( Rotate Left 循环 向左):循环左移位
44、ROR_B ( Rotate Right 循环 向右):循环右移位
45、SHL_B ( Shift Right 移动向左):左移动
46、SHR_B ( Shift Right 移动向右 ):右移动
47、SHRB ( Shift buffer 移动缓存):寄存器移位
48、STOP ( Stop 停止 ):暂停
49、END /MEND ( End /Mend ):条件/无条件结束
50、WDR ( Watch dog reset ):看门狗复位
51、JMP ( Jump 跳):跳转
52、LBL ( Label 位置 ):跳转标号
53、FOR ( For 循环 ):循环
54、NEXT ( Next 再下去):循环结束
55、SBR ( Subprogram Regulating子程序控制 ):子程序调用
56、SBR_T ( Subprogram Regulating Take ):带参数子程序调用
57、SCR ( Sequence Control 顺序控制 ):步开始
58、SCRT ( Sequence Control Transfer 顺序控制转移 ):步转移
59、SCRE ( Sequence Control End 顺序控制结束 ) :步结束
60、AD_T_TBL ( Add data to table 添加数据到表格中):填数据表
61、FIFO ( First in First out 先进先出 ):先进先出
62、LIFO ( Last in First out 后进先出 ):后进先出
63、TBL_FIND ( Table Find 表格查找 ) :表查找
64、BCD_I ( Binary Coded Decimal _I 二进制编码的十进制 ):BCD 码转整数
65、I_BCD ( I_ Binary Coded DecimaL ):整数转BCD码
66、B_I ( Bit to int ):字节转整数
67、I_B ( int to bit ):整数转字节
68、DI_I ( Double int to int ):双整数转整数
69、I_DI ( int to double int ):整数转双整数
70、ROUND ( Round 取整 ):实数转双整数
71、TRUNC ( Trunc 截取 ):转换32位实数整数部分(舍去小数取整)
72、DI_I (double int to int ):双整数转实数
73、ENCO ( Encode 编码):编码
74、DECO ( Decode 译码):译码
75、SEG ( Segment decoder分断译码器 ):七段显示译码器
76、ATH ( ASCII码 turn hex ):ASCII码转16进制
77、HTA ( Hexadecimal to ascii):16进制转ASCII码
78、ITA ( // int to ascii):整数转ASCII码
79、DTA ( // double int to ascii ):双整转ASCII码
80、RTA ( // real to ascii): 实数转ASCII码
81、ATCH (//attach ):中断连接
82、DTCH ( Depatch ):中断分离
83、HDEF ( High speed counter definition ):高速计数器定义
84、HSC ( High Speed Counter 高速计数器 ):启动高速计数器
85、PLS ( Pulse 脉冲 ):脉冲输出
86、READ_ RTC ( Read real time clock 读实时时钟 ):读实时时钟
87、SET_RTC ( Set real time clock ):写实时时钟
88、XMT ( Transmitter ):自由发送
89、RCV ( Receive 接收 ):自由接收
90、NETR ( Net read 网络读 ):网络读
91、NETW ( Net write 网络写 ):网络写
92、GET_ADDR ( Get address 获取地址 ):获取口地址
93、SET_ADDR ( Set address 设置地址 ):设定口地址
94、PID ( Proportional Integral Differential 比例、积分、微分 ):比例积分微分调节器。