潍坊S7-1200PLC西门子代理商原装现货 潍坊西门子S7-1200PLC代理,潍坊西门子PLC代理,西门子S7-1200PLC代理,西门子PLC代理
PLC控制程序编写方法有哪些
(1)绘制状态转移图
在编写较复杂的步进程序时,建议先绘制状态转移图,再按状态转移图的框架绘制梯形图。STEP7-Micro/WINSMART编程软件不具备状态转移图绘制功能,可采用手工或借助一般的图形软件绘制状态转移图。
图5-7所示为液体混合装置控制的状态转移图。
图5-7液体混合装置控制的状态转移图
(2)绘制梯形图
启动编程软件,按照图5-7所示的状态转移图编写梯形图,编写完成的梯形图如图5-8所示。
下面对照图5-6所示控制线路来说明图5-8所示梯形图的工作原理。
液体混合装置有自动和手动两种控制方式,它由开关QS来决定(QS闭合一一自动控制:QS断开手动控制)。要让装置工作在自动控制方式,除了开关QS应闭合外,装置还须满足自动控制的初始条件(又称原点条件),否则系统将无法进入自动控制方式。装置的原点条件是L、M、H液位传感器的开关SQ1、SQ2、SQ3均断开,电磁阀YV1、YV2、YV3均关闭,电动机M停转。
①检测原点条件。图5-8梯形图中的[1]程序用来检测原点条件(或称初始条件)。在自动控制工作前,若装置中的液体未排完,或者电磁阀YV1、YV2、YV3和电动机M有一个或多个处于得电工作状态,即不满足原点条件,系统将无法进入自动控制工作状态。
潍坊S7-1200PLC西门子代理商原装现货 潍坊西门子S7-1200PLC代理,潍坊西门子PLC代理,西门子S7-1200PLC代理,西门子PLC代理
程序检测原点条件的方法:若装置中的C液体位置高于传感器L一SQ1闭合一[1]10.2常闭触点断开,M0.0线圈无法得电;或者某原因让Q0.0~Q03线圈中的一个或多个处于得电状态,会使电磁阀YV1、YV2、YV3或电动机M处于通电工作状态,会使00.0-Q0.3常闭触点断开而让M0.0线圈无法得电,[6]M00常开触点断开,无法对状态继电器S0.1置位,也就不会转移执行从S0.1程序段开始的自动控制程序。
如果是因为C液体未排完而使装置不满足自动控制的原点条件,可手工操作SB5按钮,使[7]113常开触点闭合,Q0.2线圈得电,接触器KM3线圈得电,KM3触点(图5-6中未画出)闭合,接通电磁阀YV3线圈电源,YV3打开,将C液体从装置容器中放完,液位传感器L的SO1断开,[1]10.2常闭触点闭合,M0.0线圆得电,从而满足自动控制所需的原点条件。
②自动控制过程,在启动自动控制前,需要做一些准备工作,包括操作准备和程序。
a.操作准备:将手动/自动切换开关QS闭合,选择自动控制方式,图5-8中[6]IL0常开触点闭合,为接通自动控制程序段做准备,[7]I1.0常闭触点断开,切断手动控制程序段。
即时数据块(DI)用于传递功能块的参数,只能被指定的功能块FB访问。调用功能块FB时,必须指定用于该功能块的即时数据块DI,即时数据块内的数据可以自动生成,它们可以是FB变量声明表中的数据(不含临时变量)。
通用数据块(DB)用于存储PLC的全局数据,所有的FB、FC或OB都可以对通用数据块进行读写操作,它又被称为共享数据块。通用数据块内的数据不会因用户程序的结束而删除。
有关功能块、数据块的调用、编程以及程序变量、局部变量等概念,将在下面的实例中予以详细介绍。
(2) S7-300/400 PLC的程序结构。S7-300/400PLC的程序结构随着编程人员所采用的程序设计方法的不同而不同。一般而言,程序设计可以采用线性化编程、调用式编程、结构化编程的方法(见图5-32)。
b.程序准备:在启动自动控制前,[1]程序会检测原点条件,若满足原点条件,则辅助继电器线圈M0.0得电,[6]M0.0常开触点闭合,为接通自动控制程序段做准备。在PLC刚启动时,[4]SM01触点自动接通一个扫描周期,“SS0.0,1”指令执行,将状态继电器S0.0置位,使程序转移至S0.0程序段,也为接通自动控制程序段做准备。
c.启动自动控制:按下启动按钮SB1一[6]10.0常开触点闲合一执行“SCRTS0.1”指令,程序转移至S0.1程序段一由于[10]SM0.0触点在S0.1程序段运行期间始终闭合,Q00线圈得电一Q00端子内硬触点闭合一KM1线圆得电一主电路中KM1主触点闭合(图56中未画出主电路部分)一电磁阀YV1线围通电,阀门打开,注人A液休一当A液体高度到达液位传感器M位實时,传感器开关SQ2闭合一[10]10.3常开触点闭合一执行“SCRTS02”指令,程序转移至S02程序段(S0.1程序段复位)一由于[13]SM0.0触点在S02程序段运行期间始终闭合,Q0.1线圈得电,S0.1程序段复位使Q0.0线圈失电一Q0.0线圈失电使电磁阀YV1阀门关闭,Q0.1线圈得电使电磁阀YV2阀门打开,注人B液体一当B液体高度到达液位传感器H位置时,传感器开关SQ3闭合一[13]10.4常开触点闭合一执行“SCRTS0.3”指令,程序转移至S0.3程序段一[16]常ON触点SM0.0使Q0.3线圈得电-搅拌电动机M运转,定时器T50开始20s计时一20s后,定时器T50动作一[16]T50常开触点闭合一执行“SCRTS0.4”指令,程序转移至S0.4程序段一[19]常ON触点SM0.0使Q0.2线圈被置位一电磁阀YV3打开,C液体流出一当液体下降到液位传感器L位置时,传感器开关SQ1断开一[3]10.2常开触点断开(在液体高于L位置时SQ1处于闭合状态),产生一个下降沿脉冲一下降沿脉冲触点为继电器M0.1线圈接通一个扫描周期一[19]M0.1常开触点闭合一执行“SCRTS0.5”,程序转移至S0.5程序段,由于Q0.2线圈是置位得电,故程序转移时Q0.2线圈不会失电-[22]常ON触点SM0.0使定时器T51开始20s计时一20s后,[22]T51常开触点闭合,Q0.2线圈被复位一电磁阀YV3关闭;S0.1线圈得电,[9]S0.1程序段激活,开始下一次自动控制。
d停止控制:在自动控制过程中,若按下停止按钮SB2-[2]I0.1常开触点闭合一[2]辅助继电器M0.2得电-[2]M0.2自锁触点闭合,锁定供电:[22]M0.2常闭触点断开,状态继电器S0.1无法得电,[9]S0.1程序段无法运行;[22]M0.2常开触点闭合,当程序运行到[22]时,T51常开触点闭合,状态继电器0.0得电,[5]S0.0程序段运行,但由于常开触点10.0处于断开(SB1断开)状态,状态继电器S0.1无法置位,无法转移到S0.1程序段,自动控制程序部分无法运行。
③手动控制过程。将手动/自动切换开关QS断开,选择手动控制方式-[6]110常开触点断开,状态继电器S0.1无法置位,无法转移到S0.1程序段,即无法进人自动控制程序:[7]11.0常闭触点闭合,接通手动控制程序一按下SB3,I1.1常开触点闭合,Q0.0线圈得电,电磁阀YV1打开,注人A液体-松开SB3,I1.1常闭触点断开,Q0.0线圈失电,电磁阀YV1关闭,停止注人A液体一按下SB4注人B液体,松开SB4停止注人B液体一按下SB5排出C液体,松开SB5停止排出C液体-按下SB6搅拌液体,松开SB6停止搅拌液体。
基于分时多任务操作系统平台,PLC的应用程序可分为多个独立的任务模块,用户可以方便地根据控制项目中各子任务的不同功能要求,如数据采集、报警、PID调节运算、通信控制、数据打印等,开发相应的控制任务模块,在分别编制和调试之后,可一同下载至PLC的用户程序存储器中。控制项目中的各子任务在分时多任务操作系统的调度管理下,并行协同运行。
分时处理各个控制任务给控制项目执行带来的好处是设计人员可以根据不同任务对实时性能的不同需求,指定不同的优先等级,确定不同的循环周期,使得这些任务模块既相互独立运行,数据又保持一定的相互关联,从而实现确定的分时多任务控制,是某个任务处于等待状态,其他任务也可继续执行。
分时多任务操作系统的运行机制是源于大型应用软件模块化的设计思想,第一,它带来了项目开发效率上的提高,有着常规PLC无法比拟的灵活性。多任务的设计使得各个任务模块的功能描述更趋清晰简洁。第二,用户可以自行开发自己独有的而又具有通用性的独立功能模块,将其封装以便于日后在其他应用项目中重新使用。第三,各个不同的任务还可以由开发小组的不同成员分别编制。不同的开发人员基于共同的约定,可以灵活选用符合IEC1131-3规范的不同编程语言进行任务编程设计,有利于软件设计可靠性的提高,也有益于开发人员短时间内编制出结构清晰、功能明确的控制程序。