线下实训
HOME
线下实训
正文内容
plc编程 例程 9999%找不到的,西门子PLC编程实例
发布时间 : 2024-11-25
作者 : 小编
访问数量 : 23
扫码分享至微信

9999%找不到的,西门子PLC编程实例

前言

今天跟大家分享的是食品和药品成型设备的机械外形如图1所示,主要控制部件位置如图2所示,其动作过程如图3所示,步进阶梯程序软元件。

分配表如图4所示,PLC的步进阶梯程序如图5所示,PLC的普通顺控程序如图6所示。

1、动作流程图

2、成型机步进阶梯程序软元件分配表

3、成型机步进阶梯指令程序

4、成型机普通顺控程序

下面小编就把整理好的西门子最经典的案例编程程序,送给各位,速速领取!

117个三菱PLC例程

内容过多,仅展示一部分

777个西门子PLC例程

内容过多,仅展示部分

29例PLC经典编程案例

内容过多,仅展示部分

新手西门子PLC编程技巧,就是简单快速好用

本文通过例程的方式总结一些常用的西门子PLC编程技巧,从简单到复杂,从梯形图到SCL,希望对大家有所帮助。

(一)PLC系统常闭点

PLC程序的绝对常闭点,可以作为逻辑支路断开、调试或检修的屏蔽开关,尽量使用比较独立的存储位。

(二)PLC系统常开点

PLC程序的绝对常开点,可以作为逻辑支路接通、调试或检修的接通开关,尽量使用比较独立的存储位。

(三)PLC系统上电脉冲

PLC程序的系统上电脉冲,可以作为系统初始化脉冲来复位、清零和设置系统重要参数,尽量使用比较独立的存储位。

(四)一键触发启停功能

用一个按钮实现启动和停止功能,可以作为操作按钮不够时的一个补救措施。

(五)模拟量输入标定功能

将整数的模拟量标定为实数的工程量,相当于博途中自带的SCALE_X ,但该子程序结合高低量程限制后,标定和调试都更加方便。

(1)子程序调用

(2)子程序变量声明

(3)SCL代码

IF (#Emin < #Emax) AND (#Dmin < #Dmax) THEN

IF #Raw < #Dmin THEN

#RawTemp := #Dmin;

END_IF;

IF #Raw > #Dmax THEN

#RawTemp := #Dmax;

END_IF;

IF (#Raw >= #Dmin) AND (#Raw <= #Dmax) THEN

#RawTemp := #Raw;

END_IF;

#OutReal := (INT_TO_REAL(#RawTemp - #Dmin) / INT_TO_REAL(#Dmax - #Dmin)) * (#Emax - #Emin) + #Emin;

#OutPercentage := (#OutReal / (#Emax - #Emin)) * 100.0;

ELSE

#OutReal := 0.0;

#OutPercentage := 0.0;

END_IF;

(六)模拟量输出标定功能

将实数的工程量标定为整数的数字量,相当于博途中自带的NORM_X ,但该子程序结合高低量程限制后,标定和调试都更加方便。

(1)子程序调用

(2)子程序变量声明

(3)SCL代码

IF (#Dmin < #Dmax) AND (#Emin < #Emax) THEN

IF #Raw < #Emin THEN

#RawTemp := #Emin;

END_IF;

IF #Raw > #Emax THEN

#RawTemp := #Emax;

END_IF;

IF (#Raw >= #Emin) AND (#Raw <= #Emax) THEN

#RawTemp := #Raw;

END_IF;

#OutInteger := REAL_TO_INT(((#RawTemp - #Emin) / (#Emax - #Emin)) * INT_TO_REAL(#Dmax - #Dmin) + INT_TO_REAL(#Dmin));

#OutPercentage := ((((#RawTemp - #Emin) / (#Emax - #Emin)) * INT_TO_REAL(#Dmax - #Dmin) + INT_TO_REAL(#Dmin)) / INT_TO_REAL((#Dmax - #Dmin))) * 100.0;

ELSE

#OutInteger := 0;

#OutPercentage := 0.0;

END_IF;

RETURN;

(七)冒泡法排序功能

通过冒泡法升序或降序模式排序数组。

(1)子程序调用

(2)子程序变量声明

(3)模式为1(升序)的运行结果如下图所示:

(4)模式为0(降序)的运行结果如下图所示:

(5)SCL代码

IF #Enable THEN

//获取数组上限

#L := LOWER_BOUND(ARR := #Array, DIM := 1);

//获取数组下限

#H := UPPER_BOUND(ARR := #Array, DIM := 1);

//冒泡法排序

FOR #i := #L TO #H-1 DO

FOR #j := #L TO #H-1-#i DO

IF #Mode THEN

//升序

IF #Array[#j] > #Array[#j + 1] THEN

#temp1 := #Array[#j];

#Array[#j] := #Array[#j + 1];

#Array[#j + 1] := #temp1;

END_IF;

ELSE

//降序

IF #Array[#j] < #Array[#j + 1] THEN

#temp1 := #Array[#j];

#Array[#j] := #Array[#j + 1];

#Array[#j + 1] := #temp1;

END_IF;

END_IF;

END_FOR;

END_FOR;

END_IF;

(八)斜坡函数功能

输出值按照指定斜率(单位/秒)跟随设定值,可以用来防止数值突变,这个功能可以在博途中添加扩展库函数(LGF)后直接调用Ramp函数。

(1)子程序调用

(2)子程序变量声明

(3)SCL代码

#rv1:= RD_SYS_T(#ActualTime);

IF #InitFB = true THEN

#LastTime := #ActualTime;

#AuxOut := #SetPoint;

#Out := #AuxOut;

END_IF;

#DeltaTime_T:= T_DIFF(IN1:=#ActualTime, IN2:=#LastTime);

#DeltaTime_DI:= TIME_TO_DINT(#DeltaTime_T);

#DeltaTime:= DINT_TO_REAL(#DeltaTime_DI);

#DeltaTime := #DeltaTime / 1000.0;

#LastTime := #ActualTime;

IF #SetPoint < #AuxOut THEN

#Out := #AuxOut;

#auxR := #AuxOut - (#Rate * #DeltaTime);

#Out := #AuxOut;

#AuxOut := MAX(IN1 := #auxR, IN2 := #SetPoint);

#Out := #AuxOut;

RETURN;

ELSE

IF #SetPoint > #AuxOut THEN

#Out := #AuxOut;

#auxR := (#Rate * #DeltaTime) + #AuxOut;

#Out := #AuxOut;

#AuxOut := MIN(IN1 := #auxR, IN2 := #SetPoint);

#Out := #AuxOut;

END_IF;

END_IF;

RETURN;

例程说明

以上例程均在博途V15.1环境下测试通过,大家有什么好的编程技巧,欢迎留言!

相关问答

西门子PLC如何在主程序,写入调用子程序的命令?

你既然说主程序和子程序,通常就是指西门子200PLC中,我就以Micro/Win软件的操作来说明一下。如下图:当你建立一个子程序后,该子程序会出现在“调用子程序”...

学习三菱plc,哪本书好一点?

有点惭愧,虽说日常工作经常和PLC打交道,但本人是个机械,液压从业者,电器只是对低压普通电器熟悉,数字电路与自动控制只是知道大致路数。如果推荐,实在抱歉...详...

怎么学plc?

学习PLC(ProgrammableLogicController,可编程逻辑控制器)通常需要以下几个步骤:1.了解基础知识:首先,你需要了解PLC的基本概念和工作原理,包括PLC的历...

如何学习S7-300的编程?

S7-300系列PLC是西门子公司的中型系统PLC,比S7-200系列要高出一个级别,编程方式也与200不同,指令也不同。那么若是新人想学习S7-300的编程要怎么下手呢?了解...

求助S7-300OPC例程-盖德问答-化工人互助问答社区

我有个excel通过opc测试s7-300的文件。Excel通过OPC采集s7-300的数据文件已经上传到资料共享区。

labview如何控制西门子plc?

1编程方法是按照西门子PLC的通讯协议来做这里通常PC做为上位机,调用labview的visa-read/write就行了2如上上位机用VISA就行了具体清参考一下NI的串口...

信捷plc与多台变频器通讯实例?

连接5台变频器和连接一台方式差不太多,第一,plc和变频器的型号都必须支持485通讯。一般plc都有数据485发送接收指令例如三菱的rs指令,,建议你去信捷官网下载...

大仙们,求指教佛山随到随学的PLC编程培训,PLC编程培训价...

[回答]火炬开发区有一家专门是培训数控编程的学校,可以去了解下。名师高徒模具数控培训学校,就是从零基础开始教的,老师讲课非常细,也很负责。神湾这边没...

西门子plc200主从站mbus_init初始化如何建立?

初始化建立:在OB中调用modbus库,在库帮助中有例程可以参看。西门子S7-200PLC在实时模式下具有速度快,具有通讯功能和较高的生产力的特点。一致的模块化设计促...

smartplc是否能做modbus主站?

如果你说的是西门子smart200plc,目前它支持modbusrtu和modbustcp通讯,。modbus主站是针对modbusrtu得说法,当然她必须是支持可以作为主站...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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