新手西门子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入门精华:27个编程指令的功能用法,要学就学最基础最重要的
最近很多学习PLC的电工师傅都在留言问:有没有快速学习PLC的捷径?怎么样才能快速入门学习PLC?需要掌握哪些基础的编程知识?想学PLC编程,但是书上和电工手册上的知识太过抽象和繁琐,看不进去怎么办?其实说实话:PLC编程的学习是需要一定的理论知识积累和不断的实践操作的,可以很肯定的说,PLC和电工技术的学习一样,捷径肯定是没有,就算有也只是短期填充式的学习,实用性不高,虽然说没有捷径,但是PLC的学习方法还是有的,电工老师傅和PLC精通的师傅都明白一个基本的道理:方法很重要,好的学习方法可以让你节省很多的时间,可以让你利用有限的时间去学习最有用的知识和技能,甚至好的方法可以让你PLC的学习事半功倍,今天我们就重点来看一下PLC常用的27条逻辑指令,没有多余的语言,我们直接学习:
相关问答
合理利用网络资源,PLC新手如何提高以及解决疑难问题?
合理利用网络资源,PLC新手如何提高以及解决疑难问题,现在的网络对于学习PLC很有帮助,有任何问题只要在网上一搜索就会有相关的回答,甚至可以提出问题让别人进...
人机界面和PLC出现通讯故障该如何分析解决?
通讯故障按照经验来说分两个,硬件故障和软件设置故障。1,软件故障就是设置原因,如果是新机器或者PLC、触摸屏的程序修改过我们先核对软件设置是否正确。下图...
用plc控制机器人有什么意义?
人的定义,似乎也没有一致的说法,大概意思是一种可以自己完成一定工作流程的机器,人可以干预它的工作流程,可以用来协助甚至取代人类做一些工作和服务。从...很高...
机械或电气及自动化专业需要学编程吗?-NaiveJoker的回答...
PLC编程。电气工程及其自动化专业培养适应社会主义建设需要,德智体美全面发展,受到工程师基本训练,具备电机及其控...电气工程及其自动化专业培养...
机械设计制造及自动化专业的学生想学编程,需要看哪些有关编程的书呢?
谢谢邀请!同题主一样,15年前我本科阶段学的是也是机械设计制造及自动化专业,但是在那个时候该专业分为两个方向:机械设计制造及自动化专业(机械制造方向),...身...
开发单片机学什么语言好?
单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂。目前功能稍微复杂一点的电子产品,都是以单片机为...
大佬们,我想问问!!珠海哪里有PLC编程系统,PLC编程系统什么...
[回答]宇丰工业自动化还是挺靠谱的,不仅收费便宜,效果还贼棒宇丰机械手是多轴运动的集成,比单纯的多轴动作要灵活宇丰视觉检测系统就是用工业相机代替人...
西门子PLC,学习博图有哪些比较实用的书籍?
推荐三本S7-1500和博途相关的书籍,看完收获还是挺大。三本书类型不同,在学习过程可以互为参考。《S7-1500与TIA博途软件使用指南》《S7-1500PLC项目设计与...
西门子S7-200后的CN指什么意思_作业帮
[回答]CN:China即为:中国制造,中国地区使用.
在三菱PLC梯形图中M、T指令是什么意思,怎么用的?谢谢?
这几天正好在发三菱PLC的相关视频,就来简单回答一下你这个问题!三菱PLC中的M和T其实不是指令,是软元件,相当于系统定义好的作用分区,以便于我们在这个分区内...