一文速通西门子s7-1500PLC

以乐助勤 2024-10-24 14:07:01 阅读 66

注意:博途上添加设备时,订货号和版本号需要与实物一致

一、博途V16软件使用

1、进入软件后,选择创建新项目

2、填写相关信息,最后点击创建

3、点击打开项目视图

4、点击添加设备,选择需要添加的PLC,触摸屏等

5、我这里随便添加

其中我们的设备名为CPU 1516-3 PN/DP

PN:Profinet 以太网 设备可以通过以太网工作

DP:Profibus        公共总线

添加触摸屏

点击取消

二、DQDI模块

DI 数字量输入

DQ 数字量输出

AI 模拟量输入

AQ模拟量输出

数字量:就是1和0 ,离散信号,接收外部传感器信息

模拟量:连续不断变化的信号,不会在时间轴上突然消失,连续信号

PLC接线:棕正蓝负黑信号

随便选择一个DI模块,右键选择属性

32个通道,4个字节,支持24v直流电

起始地址可以进行修改地址,地址是逢八进一

点击此处可以进行仿真,不需要实际硬件也可以进行代码调试

三、PS与PM

PS与PM分别是什么?

PS:系统电源  对模块供电

PM:负载电源        对外部负载进行供电

PS有背板总线可以为机架后面的输入输出模块供电

PM没有背板总线,通过前端墙壁连接为模块和 I/O 提供 24 V DC 电流

选择PLC右键选择属性可以看电源段的功耗,这个PLC自带了12w的供能,如果功耗大于了12w就需要添加PS

机架100处是用来添加PM的

四、自动化组态

首先选择你的电脑网口(我的电脑没有网口),展开后点击更新可访问的设备,如果没有出现设备,可能原因是1、你的电脑ip地址。2、网线是否插好,设备是否开启。

扫描成功是这样的

对et200sp进行一个恢复,点击在线和诊断

选择重置

其他的一样如此设置

如果不知道订货号,可以使用非指定的CPU 1500进行自动识别

点击获取

因为PLC 1500的安全性要求比较高,我们需要给PLC设置密码

在PLC属性,防护与安全,勾选完全访问权限

对变频器进行组态,选择调试

点击调试向导

一直下一页到电机,进行如图配置

其他页面根据自己需要进行修改

五、一个亮灯的小程序

首先在PLC变量中添加变量,然后在OB块中写程序,因为我们没有实际设备,我们采用M,寄存器来给变量赋地址

触摸屏制作

启动按钮是元素一栏第二个,灯使用圆代替

右击启动按钮,选择属性,在事件中个按下添加一个置位位,变量选择按钮,释放同理,但是添加复位位

双击圆,在动画中的外观,进行变量添加,范围中添加0和1,亮灯和不亮的外观

最后点击HMI,在点击仿真

出现该窗口,点击启动和松开,灯回做出相应动作

如果发现按下启动,灯没有立即亮起就是采集周期太长

在HMI变量中,选择显示所有变量

更改采集周期

六、置位复位的使用

有置位就一定有复位,有复位不一定有置位

这里使用交通灯来进行模拟,如下图

按下北启动,北绿亮红灭,东绿灭红亮

按下东启动,东绿亮红灭,北绿灭红亮

所使用到的有:常开开关,置位线圈,复位线圈

相关变量

效果图

七、触发器指令

SR置位复位触发器

RS复位置位触发器

s和s1引脚的开关可以置位灯

R和R1引脚的开关可以复位灯

R1的指令优先级大于S,S1的指令优先级大于R

八、边沿指令

|P|上升沿               状态由0到1

|N|下降沿               状态由1到0

该指令需要两个bool变量,下面的bool变量不能一样,因为它们是用来储存上一个扫描周期启动按钮的状态的,由于边沿指令只能接通一个扫描周期的时间,我们使用普通线圈无法观察到变化,所以使用置位指令来获取一个周期是否通电

九、Scale与数据标准化

NORM_X是标准化指令,SCALE_X是缩放指令

其中标准化指令的最大值为27648是因为1、27648与16位寄存器的最大值65535相比,留有一定的安全裕量。2、27648作为模拟量离散化后的最大值,建立了实际模拟量值与PLC中数字量之间的线性关系。

十、计数器

CU是计数器输入,R是复位输入,PV是置位,CV是当前计数器值,PV是置位输出

每次点击加计数启动,当前计数器值就会加一,当前计数器到PV值时候,就会进行置位输出,点亮加计数灯,点击加计数复位就会复位当前计数器值,并复位加计数灯

十一、数据移动指令

MOVE指令将IN引脚数据赋予给OUT引脚,如果输入的数据是32位,但是输出的数据是16位就会导致数据丢失;EN是使能输入,直接连接在母线上会直接执行MOVE模块,所以需要添加一个常开触点

十二、数学函数指令

因为EN接在母线上,不见触点将会一直执行CALCULATE模块,为了点击开启计算才能计算,我们在EN前添加一个常开触点。

具体运算方式在如图下划线位置进行设置

十三、数据比较指令

常用的有等于,大于,小于,均是满足条件通电

IN_RANGE值在范围内,OUT_RANGE值在范围外,下图为值在范围内,顾名思义,输入值在最小值与最大值范围内就会通电,OUT_RANGE与之相反

十四、OB块与FC函数

在程序块添加新块中,我们可以看见以下四个

OB块(组织块)的Program cycle为主程序块,回一直循环执行,PLC扫描顺序从左到右,从上到下,循环扫描。

startup为启动OB,PLC由停止到运行时进行执行,只执行一次,也就是一次扫描周期,所以在启动OB中写定时器是不行的

TON定时器指令

TON是接通延时,也就是通电后开始计时

IN是电流输入,Q是电流输出。PT是设定时间,ET是当前时间。

该程序意思是,按下完成按扭,定时器开始工作,当前时间到达设定时间,引脚Q输出电流,点亮stop切run线圈。

延时中断OB会中断循环,也就是Time delay interrupt的优先级高于Program cycle

所谓优先级,就是PLC选择先执行的程序,优先级越高,PLC优先执行那个程序

如图,在循环OB执行到三分之二时被优先级高的程序打断,需要等待优先级高的程序执行完成,再继续执行

FC函数

为什么要使用FC函数

FC相当于子程序,可以将复杂的逻辑封装成一个独立的单元,程序就更加清晰,容易理解和维护

主要的是FC没有背景数据块(DB),他使用全局数据块(GDB)或M区来保存数据。减少了储存资源的占用,特别是处理大量数据时

FC中的INPUT,OUTPUT是叫做形参

形参也可以说是块接口

在主程序中将FC放到梯形图上,可以发现水压参数等等,这些就是形参

有形参就是实参,在PLC变量表中添加的,如下图就是实参

在FC中写逻辑来处理实参,打个比喻,主程序块像是老板,实参是老板得到的数据。FC像是员工,形参是员工要处理的数据。老板的数据交到员工手里,就是员工的数据,在根据员工内部的逻辑来对数据进行处理,产出一个员工的数据。员工将数据报告给老板,就变成老板数据。

如图

老入是老板的数据传入(实参输入)

员处是员工处理数据,也就是在FC中写的代码

该逻辑使用的值在范围指令,下图是监控的FC里面的程序,如果无法监控就需要取消勾线优化块访问

右击FC,选择属性,在常规里面选择属性,取消优化的块访问。

什么是优化的块访问。

优化的块访问是对块访问进行优化,它会将使用完的数据丢弃掉,所以无法监控

十五、OB组织块(延时中断)

之前说过优先级,cpu会优先处理优先级高的

时间延时中断OB的使用

为什么要使用延时中断OB

该功能类似于定时器,但是比普通定时器的精度高,它不受扫描周期变化的影响。通过延时中断OB,可以在不同部分插入延时操作,不用修改主程序的逻辑结构,如果程序需要等待某个事件的发生或某个条件的满足,使用延时中断OB可以减少CPU的占用率。因为延时中断OB在延时期间不会占用CPU资源,直到延时时间到达后才会执行相应的程序。延时中断OB执行完毕后,继续执行循环OB。

添加OB

在循环OB中添加SRT_DINT指令,如图大致意思为,按下启动延时,运行SRT_DINT指令,SIGN启动该指令事件标识,1表示启动。RET_VAL是该指令的运行状态,DTIME设定的延时时间,设定时间到达就执行OB_NR所指定对应ID的OB块

我只在延时中断OB中写了一个亮灯

在扩展指令中的延时中断指令

使用延时中断取消

先点击启动延时,在设定时间内点击延时中断取消,就可以取消延时中断

查询延时中断状态,STATUS是状态参数,选择下图指令块,按下F1,查看西门子手册

可以发现,手册上是用位来进行解释的,我们得到的是16进制的10,使用计算机的程序员模式进行转换,

HEX是16进制,DEC是10进制,OCT是8进制,BIN是2进制,将16进制数转换为2进制就可以了

十六、OB组织块(循环中断)

循环中断块只在设定时间到达时让CPU进行扫描,节省了CPU资源

右键循环中断OB,点击属性,再点击循环中断,循环时间是从cpu启动时开始计时,到达循环时间就扫描一次循环中断OB,相移是出现多个循环中断,为了防止扫描循环中断混乱,对于具有相同或相似时间间隔的循环中断,为每个中断设置一个合适的相移时间。相移时间的大小应根据实际需求和中断的优先级进行确定。

使用move指令来进行演示

这是循环OB里面的

这是循环中断OB里面的

到循环时间到达就会执行循环中断OB的程序

十七、OB组织块(硬件中断)

十八、G120变频器应用

N=60F/P(电动机转速公式)

N:电动机转速(理论转速)

F:电源频率 50Hz

P:电动机极对数 (2.4)

变频器:修改频率对电机控制

停止:16#047E

正转启动:16#047F         CW(顺时针)

反转启动:16#0C7F        CCW(逆时针)

复位:16#04FE

QW256:方向讯号寄存器

QW258:速度状态寄存器:16384        模拟量:27648

将停止和正反转的16进制数写入方向讯号寄存器,在速度状态寄存器里面写数字调解频率

十九、Graph块

Graph/FB        顺控器

目标:四个灯,每3秒,循环点亮

添加graph块

调用Graph,在循环OB中,将graph/FB拖到母线即可

Graph每个引脚的含义

双击步进行添加动作,让第一个灯亮,其他三灯熄灭,转换条件是超出步激活时间

在最后添加了跳转,跳回第一步,进行循环

二十、Graph前固定指令与后固定指令

PLC对顺控器的扫描是先扫描前固定,顺控器,后固定;每个指令都只扫描一个扫描周期,不会等待某个指令完全执行完成

操作情景:

水泥搅拌机:高速搅拌3s(红色)中速搅拌3s(棕色)低速搅拌3s(绿色)得到启动(粉色)

启动按钮                报警灯(蓝色)

在前固定指令中做一个开启标记

在第一步等待开启标记的触发

在后固定中添加,当低速灯亮起时,为走了一个循环,亮起报警灯

结果

前固定指令一般写顺控器的复位,顺控器中写运行逻辑,后固定指令中写顺控器的监控(超速,超温等报警)。在现场的工业中不给S1(步1)写东西,直接走T1进行复位(转换条件1)。

二十一、Graph互锁(Interlock)与监控(Supervision)

互锁,继电器控制,使用正转线圈锁住反转触点,反转线圈锁住正转触点。

当互锁黄的状态为0是才能互锁成功,这里是互锁黄按钮没有按下状态为0,不给互锁线圈通电,导致"黄":=1没有通电,就没有点亮黄灯。

监控

当按下报警了按钮且执行到这个步,就触发监控线圈停止顺控器

接触监控状态需要先复位报警了按钮

在顺控器FB的引脚中有个ACK_EF(确认所有错误和故障)

按下报错复位后就恢复。

二十二、FB块FC块DB块

编程思路:1、线性化编程(程序全写OB1)特点:结构简单,概念简单。缺点:重复扫描浪费资源。

2、模块化编程(将程序分成不同逻辑块)特点:易于分工合作,调试方便。

3、结构化编程(将过程要求中类似或相关任务进行归类,在函数或者函数块中进行编程形成通用的解决方案)写一个函数块,优点:各个任务的创建和测试可以相互独立进行,通过参数可将块设计的十分灵活。

FC块:函数,没有自己独立的资源,因为没有自己的数据存储器,需要给每个形参调用实参。

FB块:函数块,有自己的数据存储器。 

DB块:实际就是一个数据存储器,可以是一个全局数据块,也可以是FB块的背景数据块。

以下是FC块

以下是FB块

发现FB的计算按钮断开后结果数据保持,是在FB的背景数据块进行保存的

FC的形参会释放掉,全部变量占用系统资源不会轻易释放掉。

FC的数据进出程序块传输的是地址。没有背景数据块,没有地方放数据只能传输地址。

FB的数据进出程序块传输的是数据,因为FB有背景数据块有地方放数据。

数据DB占用CPU的装载存储区和工作存储区,与标识存储区类似都是全局变量。M数据区已经定义好了,DB最大不能超过装载存储区和工作存储区的内存。

FB=FC+DB

二十三、HMI应用基础(趋势图制作)

在控件中选择第二个

右击趋势图选择属性,添加趋势

循环时间是多少时间采集一次数据

其他属性根据自己需求进行修改

接下来做数据标准化

使用顺控器对温度不断赋值

得到趋势图

趋势图里面的平滑区应该是扫描周期的原因。

二十四、报警

报警的分类:

1、自定义报警(用户可以自己设定和触发的报警)分类:1、离散量报警(数字量报警、IO报警)2、模拟量报警(温度、压力、湿度、张力)

2、系统报警:1、HMI触发的系统报警        2、PLC触发的系统报警

模拟量报警

进行数据标准化

在HMI中点击HMI报警进行设置

选择模拟量报警,添加报警文本和触发变量,大于60就会报警

在HMI中添加温度的标准化和报警画面

离散量报警

触发变量是16位,小车位置错误的地址是MW636,西门子是高位到低位的地址排序

M636.7-M636.0

M637.7-M637.0

触发位是8,所以是M636.0



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。