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编程控制红绿灯交替闪烁。程序采用防抖动措施,以确保灯光的稳定状态。实现过程中,我们首先定义红绿灯的IO口,接着编写状态转化的过程,并...
plc梯形图编程中,定时器应该怎样编写?
科技引领生活,爱科技的小青年带你在科技的海洋里无限遨游……定时器在PLC系统中是较为常见的指令,相当于我们常用的时间继电器功能,可以进行定时操作。PLC中...
我是搞PLC工控的,想学门编程语言,有走过的前辈给推介下?
刚开始我也是编写一些plc程序,做非标设备的。刚好10年时候公司有大量大族激光的设备要改造。都是固高运动卡,大恒图像之类...工业自动化多是plc控制,和你一...
怎么学plc?
学习PLC(ProgrammableLogicController,可编程逻辑控制器)通常需要以下几个步骤:1.了解基础知识:首先,你需要了解PLC的基本概念和工作原理,包括PLC的历...
老铁们求指教,江门性价比高的PLC编程联系方式,有了解这个...
[回答]2、可以使用十进制3、FP2模拟量模块手册第7-7页完整程序,包括了线性转换,区别仅仅是例程对应的是0~5000,而你对应0~300而已。有听过宇丰工业自动化...
plc功能块介绍?
功能块(FB)是从另一个代码块(OB、FB或FC)进行调用时执行的子例程。调用块将参数传递到FB,并标识可存储特定调用数据或该FB实例的特定数据块(DB)。...
台达PLC通讯问题?台达plc好维护吗?
[回答]冲区3+缓冲区4=2+88+128+168+208=594字节。01FEDFUU0U在后。00c230200A4UDA在后。041AU魔U0在后。则会在相应的地方将数据写入进去。不同于常见.....
西门子plc200主从站mbus_init初始化如何建立?
初始化建立:在OB中调用modbus库,在库帮助中有例程可以参看。西门子S7-200PLC在实时模式下具有速度快,具有通讯功能和较高的生产力的特点。一致的模块化设计促...
西门子PLC怎么打开压缩程序-ZOL问答
那种PLC啊,LOGO,200,300,400?一般你解压缩了用相应软件就直接能打开啊?有用...完成位来激活,以保证所有读写指令循环进行(见例程)。2.First读写请求位:每一...