线下实训
HOME
线下实训
正文内容
avg车plc编程 西门子PLC S7-200 Smart开源标准化编程—PLC的面向对象编程
发布时间 : 2024-12-28
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子PLC S7-200 Smart开源标准化编程—PLC的面向对象编程

此文章出自于西门子工业支持中心技术论坛,作者:不欲勿施

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文涉及产品:PLC S7-200 Smart

这个题目很大,需要反复研究。这不是探讨帖,所以还是分享并以一个对象编程的例程展开来讲。我尽可能用通俗的语言来讲。

先大致分两部分来讲,一个是对象,一个是对象编程。上一张图。

一、图中程序的对象是列举,肯定是不全的,就是示意一下程序的构成。

这里对象还好理解一些。之前看了我帖子的小伙伴,接触了我做的标准化程序,里边有不少子程序,这些子程序里的大部分都是面向PLC里的基本对象的。有好多号称标准化编程的程序进行到这一步就把程序分享出来了,实际上这样只是完成了第一步,造成很多人不知道如何下一步。也就不知道什么是对象编程了。

下面我尽可能列举出实物对象与程序的对应。我把程序的对象分成4层:

第0层: 通信对象层,之前的帖子里我曾称通信是获取IO的工具,通信其实就是把从站设备的IO交换到PLC的内部来。之前我对Modbus RTU Modbus TCP通信对象进行的封装,其它类型通信还未进行封装。

第1层: IO对象处理层,比如一个检测物料的光电传感器,在PLC内进行简单的信号处理,我们需要传感器ON后2秒后的信号才是有效的,物料被移走后6秒信号才OFF,这时我们就可以用标准化子程序里的L103TonTof。在信号处理这里还会产生这些信号的沿,供后面的程序使用。

第2层: 无面板动作对象层,这个层里主要是一些执行器的状态不用反馈到HMI的对象。

第3层: 带面板动作对象层,这个层里主要是需要反馈到HMI的对象。

第4层: 工艺功能对象层,这个层里主要是各种工艺功能等对象。

二、对象编程。图中右侧深绿色是对象编程的示意。其中工艺(自动)子程序内的逻辑实现同样和对象子程序一样使用L区实现的,与下层对象程序之间的联系靠的是对象程序上的IO。在严格遵守对象编程的规则下,在程序中看到的全局地址都是IO。

下面分享一个以前做的一个半成品项目,自动程序的调试接近完成。程序内的对象程序与我新发的程序里的对象程序不完全相同,主要借鉴程序的结构。这是一个拆垛机的程序,就是垂直两三垛带托盘的货物经过拆垛机后,拆成单个托盘和货物。拆垛机一共有5个工位:1工位是上垛工位,是AVG小车上垛。2工位是垛型判断工位,判断是两托盘货还是三托盘货。3工位是货物托举工位,并一托或两托货物托举起来的工位。4工位是存放拆成单托盘的货物,只能放下一下托盘的货物。5工位是人工用手动叉车移走单托盘货物的工位。

设备里的执行器大都是辊道电机,电缸,还有两台伺服,没有模拟量执行器。

下面给出触摸屏上的手动画面和PLC程序。

此程序主要用来了解PLC的对象编程,看一看PLC对象编程的程序结构。觉得有用就下载回个帖或点点有帮助。

西门子PLC系列连载 No26 西门子1200PLC的SCL语言使用解析!

本文首发于“江苏远恒教育”公号,订阅“江苏远恒教育”公号,更多精彩等你来发现~

SCL(Structured Control Language)是西门子用于其PLC编程的高级语言之一 。相比于其他PLC语言(如梯形图、功能块图等),SCL具有语法简洁、易于理解和编写的优点。它非常适合用于描述复杂的算法和数据结构。本文将详细解析西门子S7-1200 PLC中SCL语言的使用。

一、SCL语言基础

在传统的PLC系统中,所有的输入/输出设备都直接连接到PLC的I/O模块上。然而,随着工业生产线的发展,设备的数量增加,且分布在各个位置,导致布线变得复杂且成本高昂。

SCL语言的语法与Pascal和C语言类似。它由语句和表达式构成,每条语句用分号结束。SCL支持常见的数据类型(如INT、REAL、BOOL等)和控制结构(如IF-THEN-ELSE、FOR-TO-DO、WHILE-DO等)。此外,SCL还支持数组、结构体等复杂数据类型,可以满足复杂应用的需求。

例如,以下是一段简单的SCL代码,用于计算两个整数的和:

VAR

a : INT := 10;

b : INT := 20;

c : INT;

BEGIN

c := a + b;

END_VAR

二、在TIA Portal中使用SCL

在西门子的TIA Portal编程环境中,SCL语言可以用于创建函数(FC)、函数块(FB)和全局DB。要创建一个新的SCL函数或函数块,首先在项目树中选择对应的PLC,然后右键点击“函数”或“函数块”,选择“添加新项目”,在弹出的对话框中选择SCL作为语言。

创建新的SCL函数或函数块后,可以在编辑窗口中输入代码。TIA Portal提供了代码高亮、自动完成、错误检查等功能,可以帮助工程师更高效地编写代码。

在SCL函数或函数块中,可以使用VAR区域定义局部变量,使用VAR_INPUT和VAR_OUTPUT定义输入和输出参数。要调用SCL函数或函数块,可以在其他SCL代码中直接写函数或函数块的名称,然后用括号括起参数列表。

例如,以下是一个SCL函数块的示例,用于计算两个实数的平均值:

FUNCTION_BLOCK Average

VAR_INPUT

x : REAL;

y : REAL;

END_VAR

VAR_OUTPUT

avg : REAL;

END_VAR

BEGIN

avg := (x + y) / 2.0;

END

END_FUNCTION_BLOCK

这个函数块有两个输入参数x和y,一个输出参数avg。在BEGIN和END之间,执行了一条计算平均值的语句。

三、SCL的高级应用

除了基础的语法结构和数据类型,SCL还提供了一系列高级功能,如函数和过程、异常处理、文件和I/O操作等。

函数和过程是SCL的重要组成部分。它们允许将代码块封装成可重用的单位,提高代码的模块化和可读性。在SCL中,函数和过程的定义与调用方式类似于Pascal和C语言。

异常处理是处理运行时错误的重要机制。SCL提供了TRY-CATCH结构,可以捕获并处理异常。在TRY块中,执行可能会抛出异常的代码;在CATCH块中,处理异常。

文件和I/O操作是SCL的重要功能。SCL提供了一系列函数,如Open、Read、Write、Close等,可以用于文件的打开、读写和关闭。对于I/O设备,SCL提供了函数,如I_Read、I_Write等,可以用于读写输入和输出数据。

例如,以下是一个SCL过程的示例,用于读取一个输入信号,然后将其值写入文件:

PROCEDURE WriteToFile

VAR_INPUT

filename : STRING;

signal : REAL;

END_VAR

VAR

file : FILE;

BEGIN

file := Open(filename, fmWrite);

Write(file, signal);

Close(file);

END_PROCEDURE

这个过程有两个输入参数:filename(文件名)和signal(信号值)。在BEGIN和END_PROCEDURE之间,执行了一系列文件操作:首先打开文件,然后将信号值写入文件,最后关闭文件。

四、SCL的应用实例

为了更直观地理解SCL的应用,我们来看一个实际的例子。假设我们需要在PLC中实现一个温度控制算法。该算法根据设定的目标温度和实际测量的温度,计算出控制器的输出值。

首先,我们需要创建一个SCL函数块,如下所示:

FUNCTION_BLOCK TempControl

VAR_INPUT

setpoint : REAL; // 目标温度

measurement : REAL; // 实际温度

END_VAR

VAR_OUTPUT

output : REAL; // 控制器输出值

END_VAR

VAR

error : REAL; // 温度误差

BEGIN

error := setpoint - measurement;

output := PID(error); // PID是我们自定义的一个函数,用于计算PID控制器的输出值

END

END_FUNCTION_BLOCK

这个函数块有两个输入参数:setpoint(目标温度)和measurement(实际温度),一个输出参数:output(控制器输出值)。在BEGIN和END之间,计算了温度误差,然后调用了一个自定义的PID函数,将误差转化为控制器的输出值。

然后,我们可以在其他SCL代码中调用这个函数块,如下所示:

VAR

tc : TempControl;

BEGIN

tc(setpoint := 50.0, measurement := ReadTemp()); // ReadTemp是我们自定义的一个函数,用于读取温度传感器的值

WriteOutput(tc.output); // WriteOutput是我们自定义的一个函数,用于将控制器的输出值写入输出设备

END_VAR

这段代码首先定义了一个TempControl类型的变量tc。然后调用了tc函数块,将设定温度设为50.0,实际温度设为ReadTemp函数的返回值。然后将tc函数块的输出值写入输出设备。

五、总结

总的来说,SCL是一种强大而灵活的PLC编程语言,适用于处理复杂的算法和数据结构。虽然SCL的学习曲线相比梯形图等更为陡峭,但只要掌握了基本的语法和编程范式,就可以利用其高级功能,实现更复杂、更高效的控制逻辑。

相关问答

...47△x0.007avg0.251б0.002CPUCPLCPCPK请计算以上4项,_作业帮

[最佳回答]计算公式及结果如下:Cpu=(USL-Average)/3σ=(0.253-0.251)/(3*0.002)=0.33Cpl=(Average-LSL)/3σ=(0.251-0.247)/(3*0...

在线的各位知道吗,三菱定位模块中定位数据怎么使用?求解答

[回答]◇控制轴数:2轴联动,2轴独立◇插补功能:2轴线性插补,2轴圆弧插补◇A1SD75系列组件表现了三菱在制造和设计CNC,变频调器,伺服系统和PLC诸方面的综合...

帮忙一下,变频供水设备能保修多久?

[回答]襄阳无负压变频供水设备变频器控制柜:自主研发的通用型智能化监控,PLC编程,功能完善,常见故障警报及有全自动检修作用,使运作更为平稳,实际操作更为...

求帮助!螺丝锁紧检测包括哪些?

[回答]螺丝锁紧检测方案说明:触摸屏采用以太网形式通讯PLC,PLC采用Canlink通讯伺服实现控制。方案优点通讯优点:采用Canlink通讯伺服,高速度可达1M,节省接...

SQL表中整数除以整数如何得到4位小数,谢谢各位...-汇财吧专...

[回答]AVGMAXBINARY_CHECKSUMMINCHECKSUMSUMCHECKSUM_AGGSTDEVCOUNTSTDEVPCOUNT_BIGVAR...如下图所示,把这个表格从中间一分为二,分成...

哪位资深人士!请回答一下,如何订制广告礼品?定制广告礼品...

[回答]订制手表其实也不麻烦,首先你要选好款式(建议最好在生产厂家现有的款式里选,如果不是的话,那就成本高了,重新开模,既麻烦成本又高)然后把你自己的要...

压胶机剪刀用什么材料?什么硬度来做啊?旧压胶机的剪刀坏了...

[回答]有个朋友在科诺电子设备上班3年了,时不时的跟我炫耀一下他们公司,搞得我都想去了。桩身倾斜:桩身垂直偏差过大。原因分析:场地不平、有较大坡度。...

 marilynmanson  情感窝窝 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部