基于SFC的上位机控制程序设计研究
- 格式:pdf
- 大小:126.19 KB
- 文档页数:3
sfc编程步骤解读标题,SFC编程步骤解读,从概念到实践。
SFC编程(Sequential Function Chart)是一种用于描述程序控制逻辑的图形化编程语言,它将程序分解为一系列连续的步骤,使得程序的设计和维护变得更加直观和易于理解。
在本文中,我们将解读SFC编程的基本步骤,从概念到实践,帮助读者更好地理解和应用这一强大的编程工具。
第一步,分析需求。
在进行SFC编程之前,首先需要对程序的需求进行仔细的分析和理解。
这包括确定程序的输入和输出,定义程序的功能和逻辑流程,以及识别程序中可能出现的各种情况和异常情况。
只有在对程序需求有了清晰的认识之后,才能更好地进行SFC编程的设计和实现。
第二步,绘制状态图。
SFC编程的核心是状态图的设计。
状态图是由一系列状态和状态之间的转移条件组成的图形化表示,用于描述程序的各种状态和状态之间的转换关系。
在这一步中,我们需要根据需求分析的结果,绘制出程序的状态图,明确各个状态之间的转移条件,以及状态转移时需要执行的动作。
第三步,编写程序代码。
在完成状态图的设计之后,就可以开始编写SFC程序的代码了。
SFC编程语言通常具有直观的语法和丰富的功能模块,可以轻松地将状态图转化为可执行的程序代码。
在编写程序代码时,需要根据状态图中定义的状态和转移条件,逐步实现程序的各个功能模块,并确保程序能够正确地响应各种输入和条件变化。
第四步,调试和测试。
完成程序代码的编写之后,需要进行调试和测试,以确保程序的稳定性和可靠性。
在这一步中,可以通过模拟各种输入条件和状态转移,对程序的各个功能模块进行逐一测试,发现并修复可能存在的问题和错误。
只有经过充分的调试和测试之后,程序才能够被部署和应用于实际的控制系统中。
总结。
SFC编程是一种强大的、直观的编程工具,可以帮助程序员更好地理解和实现复杂的控制逻辑。
通过分析需求、绘制状态图、编写程序代码、调试和测试等一系列步骤,可以有效地应用SFC编程,实现程序的高效控制和管理。
SFC程序一、概述“SFC”是“顺控功能图”的缩写,表示控制运行顺序分成一系列步的程序格式,能够清晰地表达程序执行顺序和执行条件。
注意:基本型号 QCPU Q00J/Q00/Q01CPU与MELSAP3不兼容,当使用MELSAP3时使用高性能型号QCPU。
1.1 SFC 程序的说明SFC 程序按照梯形图表示的各步发生的具体控制,把机械运行的顺序分成各步。
SFC程序按照从初始步开始,接着进行满足转移条件后的各步,最后以END步结束的顺序进行。
1、当起动SFC程序时首先执行初始化步。
2、继续初始步的执行直到满足转移条件 1,当满足该转移条件时停止初始步的执行继续初始步后的处理。
SFC 程序的处理以该方式逐步继续直到执行了END 步为止。
1.2 SFC MELSAP3 特点1、更容易设计和维护系统因为整个系统和各个站以及机器本身的控制,都是在一对一的基础上与 SFC 程序的块和步对应,所以即使顺控程序经验较少的人也可以设计和维护系统。
此外其它程序员用该格式设计的程序也比顺控程序更易于解码。
2、不需要复杂的互锁电路互锁电路只用在各个步的操作输出程序中,因为步之间不需要互锁,所以整个系统不需要互锁。
3、块和步配置可以容易地改为新的控制应用SFC 程序中总共可以使用320 个块,各个块中512 步,在梯形图程序中总共可以为运行输出和转移条件创建4k个顺控步。
把各个块和步分割以便获得用于机器运行的各单元系统的最佳配置这样能够减少应答时间更易于调试和试运行操作。
4、能够创建多个初始步可以很容易地执行并组合多个工艺,使用选择汇合格式链接初始步。
当激活多个初始步 S0 至S3 时,满足选择汇合之前瞬间的转移条件t4至t7 的步变为无效并转移到下一步。
此外当有效步之前瞬间的转移条件得到满足时按照参数设置执行下一步。
• 等待等待下一步无效后转移到下一步。
• 传送如果激活下一步则转移到下一步。
• 暂停如果激活下一步则出错。
上位机软件设计范文1.需求分析:首先需明确用户对软件的需求和期望,了解所需的功能需求、系统架构需求、用户界面需求等,并记录下来。
2.系统设计:根据需求分析得出的结果,将其转化为系统设计。
这包括确定软件的总体架构、应用场景、模块划分、通信协议、数据结构等。
3.软件开发:在系统设计的基础上,进行软件开发。
这包括编写代码、测试、调试等过程。
高效的编码和清晰的代码结构是保证软件质量的重要因素。
4.数据库设计:对于需要存储和管理大量数据的上位机软件,数据库的设计尤为重要。
数据库需要能够存储用户输入的数据、设备状态数据等,并能进行高效的查询和更新。
5.用户界面设计:用户界面设计需要考虑用户的使用习惯和操作习惯,保证用户界面清晰易懂、交互友好。
根据需求分析,设计一个直观、功能全面的用户界面。
6.通信协议设计:上位机软件通常需要与下位设备或控制器进行通信。
通信协议设计要考虑通信的可靠性、实时性和扩展性。
协议设计需要明确通信方式、通信周期、数据格式等。
7.测试与验证:软件开发完毕后,需要进行系统测试和验证。
测试包括单元测试、集成测试、系统测试等。
确保软件符合用户需求并能够稳定可靠地运行。
8. 部署和维护:软件开发完毕后,需要将软件部署到实际使用环境中。
同时,需要进行软件的维护和升级,及时修复软件中的bug,并添加新的功能或改进用户界面。
总结而言,上位机软件设计需要具备系统性思考、全面的功能设计、高效的编码、可靠的通信和数据管理以及良好的用户界面设计。
通过上述步骤,可以有效地设计出一个满足用户需求并具备良好扩展性的上位机软件。
三菱PLC顺控指令SFC的编程方法顺序功能图(Sequeential Function Chart)是一种新颖的、按照工艺流程图进行编程的图形编程语言。
这是一种IEC标准推荐的首选编程语言,近年来在PLC编程中已经得到了普及和推广,SFC编程的优点:1、在程序中可以很直观地看到设备的动作顺序。
比较容易读懂程序,因为程序按照设备的动作顺序进行编写,规律性较强。
2、在设备故障时能够很容易的查找出故障所处在的位置。
3、不需要复杂的互锁电路,更容易设计和维护系统。
SFC的结构:步+转换条件+有向连接+机器工序的各个运行动作=SFC。
SFC程序的运行从初始步开始,每次转换条件成立时执行下一步、在遇到END步时结束向下运行。
第一章单流程结构的编程方法本教程主要介绍在三菱PLC编程软件GX Developer中怎编制SFC顺序功能图。
下面以例题1介绍SFC程序的编制法。
例题1:自动闪烁信号生成,PLC上电后Y0、Y1以一秒钟为周期交替闪烁。
本例的梯形图和指令表(如图1-1)。
(A) (B)(C)图1-1 闪烁信号(A 梯形图 B 指令表 C SFC 程序) 下面我们开始对图1-1(c)所示的SFC 程序进行一下总体认识一个完整的SFC 程序包括初始状态、方向线、转移条件和转移方向组成(如图1-1(c ))。
在SFC 程序中初始状态必须是有效的,所以要有启动初始状态的条件,本例中梯形图的第一行表示启动初始步,在SFC 程序中启动初始步要用梯形图,现在开始具体的程序输入。
启动GX Develop 编程软件,单击“工程”菜单,点击创建新工程菜单项或点击新建工程按钮(如图1-2)。
图1-2 GX Develop 编程软件窗口 弹出创建新工程对话框(如图1-3)。
我们主要是讲述三菱系列PLC ,所以在PLC 系列下拉列表框中选择FXCPU ,PLC 类型下拉列表框中选择FX2N (C ),在程序类型项中选择SFC ,在工程设置项中设置好工程名和保存路径之后点击确定按钮。
天塔之光plc程序sfc天塔之光PLC程序SFC一、介绍天塔之光是一座高耸入云的建筑,拥有独特的外观和灯光效果。
为了控制和管理天塔之光的灯光系统,我们使用了PLC(可编程逻辑控制器)来编写SFC(序列功能图)程序。
本文将详细介绍天塔之光PLC程序的SFC设计和实现。
二、SFC概述1. SFC简介序列功能图(SFC)是一种基于状态转换的控制模型,用于描述系统在不同状态下的行为和转换关系。
它由步骤(Step)、分支(Branch)、连接线(Transition)等元素组成,能够清晰地展示系统的逻辑流程。
2. SFC在PLC中的应用SFC常用于PLC编程中,特别适合描述复杂的顺序控制任务。
通过将任务分解为多个步骤,并根据不同条件进行分支判断,可以实现对系统各个部分进行精确控制。
三、天塔之光PLC程序设计1. 总体设计思路天塔之光灯光系统需要实现以下功能:- 灯光开启时按照预设模式运行;- 当检测到紧急情况时,立即关闭所有灯光;- 当天塔之光维护人员进行维修时,需进入维修模式,关闭部分灯光。
基于以上需求,我们将设计一个包含以下步骤的SFC程序:- 初始化步骤- 主循环步骤- 灯光模式选择步骤- 紧急情况检测步骤- 维修模式检测步骤2. SFC程序详解(1)初始化步骤:在该步骤中,PLC将进行系统的初始化设置,并准备好各个输入输出接口。
同时,将设置灯光系统的初始状态为关闭。
(2)主循环步骤:在该步骤中,PLC将持续监测各个输入信号,并根据当前状态执行相应的操作。
主循环包括以下子步骤:- 灯光模式选择:根据外部信号选择灯光运行的模式。
- 紧急情况检测:监测是否有紧急情况发生。
- 维修模式检测:监测是否进入维修模式。
(3)灯光模式选择步骤:在该步骤中,根据外部信号选择不同的灯光运行模式。
可以设置多个模式,如常规模式、夜间模式等。
根据选择的模式,PLC将根据预设的灯光方案控制灯光的亮灭。
(4)紧急情况检测步骤:在该步骤中,PLC将持续监测是否有紧急情况发生。
台达sfc编程实例1.什么是SFC?SFC是Sequential Function Chart(顺序功能图)的缩写,是一种常用于自动化控制系统中、描述离散事件的编程方法。
它基于状态机和流程图的理论,以图表的形式展现程序的逻辑结构和执行流程,使程序的编写和维护更加直观、易于理解和调试。
2.台达SFC编程工具简介台达SFC编程工具主要有两个,分别是SFC-SIM和SFC-EDIT。
其中,SFC-SIM是基于C++语言的仿真程序,可以方便地模拟SFC程序的运行情况,进行调试和验证;而SFC-EDIT则是用于编写、编辑和调试SFC程序的专用软件,支持多种语言和多种硬件平台的开发。
3.台达SFC编程实例——门禁系统控制门禁系统是我们日常生活中比较常见的一种自动化应用,下面就以此为例,介绍如何用台达SFC编程实现一个门禁控制程序。
3.1硬件设计门禁系统包含两个主要的硬件模块,分别是门禁控制器和门禁读卡器。
门禁控制器负责控制门的开关状态和报警信号的输出,门禁读卡器则负责读取门禁卡的信息,并将读卡结果传递给控制器。
下面是一个简单的门禁系统硬件设计图:```-------------------|门禁控制器| || |开关输出| |报警输出| || -------------------|||------------------|门禁读卡器| || |信号输入| |数据输出| || ------------------```3.2软件设计门禁控制程序主要分为三个部分,分别是读卡器模块、控制器模块和报警模块。
其中,读卡器模块负责读取门禁卡的信息,并将读卡结果传递给控制器模块;控制器模块则根据读卡器模块传递过来的信息,实现门的开关控制;报警模块则负责在发生异常情况时,发出警报信号。
下面是一个简单的门禁控制程序的SFC图示:```[Start][Read Card][Control][Alarm][End]^--------------+----------------+----------------+--------------+||+--->[Card OK]---->[Open Door]|||+--->[Card KO]---->[Alarm On]--[Wait]--+```图中,[Start]表示程序的启动位置,[End]表示程序的结束位置;[Read Card]是一个状态,表示等待读卡器输入信号;[Control]是另一个状态,表示控制门的开关状态;[Alarm]是一个中间状态,表示发生异常时报警系统需要等待一段时间才会继续执行;[Card OK]和[Card KO]是两个子状态,分别表示读卡器的输入信号符合和不符合门禁控制规则。
AB语言:用途广泛,易学易用1. 介绍AB语言AB语言是一种用途广泛的计算机编程语言,它具有简单易学、结构明确、易读易懂等特点。
AB语言广泛应用于各种领域的软件开发和系统集成中,尤其在工业自动化控制领域有着重要的地位。
2. AB语言的特点AB语言的语法结构清晰,功能丰富。
它支持多种数据类型和数据结构,能够方便地进行逻辑运算、数学计算和字符串处理等操作。
AB语言还支持面向对象的编程范式,使得程序的模块化和重用变得更加简单。
3. AB语言的应用领域AB语言被广泛应用于工业自动化控制系统、机器人控制、交通信号控制、智能家居系统等领域。
它在这些领域中扮演着至关重要的角色,为实现系统的自动化、智能化提供了强有力的支持。
DCS语言:控制系统的核心语言1. 介绍DCS语言DCS语言是一种针对分布式控制系统(DCS)设计的特殊编程语言,它具有与AB语言不同的特点。
DCS语言主要用于编写控制逻辑,并与控制系统中的传感器、执行器等硬件设备进行交互。
2. DCS语言的特点DCS语言与AB语言相比,更加关注控制系统的实时性和可靠性。
它支持并行执行,能够处理多个传感器信号和执行器指令,实现对控制系统的精准控制。
DCS语言还支持对系统状态进行监控和诊断,能够及时发现和处理系统故障。
3. DCS语言的应用领域DCS语言广泛应用于工业控制领域,如石油化工、电力、水处理等行业,以及航天、国防等领域。
它在这些领域中发挥着至关重要的作用,保障着系统的安全运行和高效生产。
SFC语言:图形化编程的利器1. 介绍SFC语言SFC语言是一种图形化编程语言,它的特点是使用状态图和过程图来描述系统的控制逻辑。
SFC语言在工业控制系统和自动化设备中得到了广泛的应用,以其直观、易理解的编程方式受到了广大工程师的青睐。
2. SFC语言的特点SFC语言采用了图形化的编程方式,使得控制逻辑的设计和调试变得更加直观和高效。
工程师只需要通过拖拽、连接状态和过程图元件,就能够完成对系统控制逻辑的描述,无需深入编程细节。
第二章多流程结构的编程方法上一章我们讲述了单流程结构的编程方法,本章深入讲解多流程结构的编程方法,多流程结构是指状态与状态间有多个工作流程的SFC程序,多个流程之间是通过并联方式进行连接的,并联连接的流程可以有选择性分支、并行分支、选择性汇合、并行汇合等几种连接方式。
下面以具体的实例介绍。
例题1:某专用钻床用来加工圆盘状零件均匀分布的6个孔,操作人员放好工件后,按下起动按钮X0,Y0变为ON,工件被夹紧,夹紧后压力继电器X1为ON,Y1和Y3使两个钻头同时开始工作,钻到由限位开关X2和X4设定的深度时,Y2和Y4使两个钻头同时上行,升到由限位开关X3和X5设定的起始位置时停止上行。
两个都到位后,Y5使工件旋转600,旋转到位时,X6为ON,同时设定值为3的计数器C0的当前值加1,旋转结束后,又开始钻第二对孔。
3对孔都钻完后,计数器的当前值等于设定值3,Y6使工件松开,松开到位时,限位开关X7为ON,系统返回初始状态。
根据例题要求写出I/O表:1、输入2、输出启动按钮X0 工件加紧Y0压力继电器X1 两钻头下行Y1 Y两钻孔限位X2 X4 钻头上升Y2 Y4两个钻头原始位X3 X5 工作旋转Y5旋转限位X6 工作松开Y6工作松开限位X7功能示意图:图1 新建SFC块图2 双击黑色块0图3 点击“梯形图”和“执行”图4 点击右边梯形图输入图5 按“F4”转换图6 双击“程序-MAIN”图7双击黑色块1图8 点击“SFC块”和“执行”图9 对步号0右边梯形图输入“RST C0”并按F4转换图10 对转换条件0右边梯形图输入X0转换条件分析:由题目要求我们可以在练习纸上编辑出顺序控制功能图(如图2-1)所示。
打开GX developer 软件,设置方法在第一章已经讲过,在此不再赘述。
本例中我们还是利用M8002作为启动脉冲,程序的第一块我们输入梯形图,按照上一章讲解的单序列SFC 程序输入方法。
本例中我们要求初始状态时要做些工作就是复位C0计数器,因此对初始状态我们做些处理,把光标移到初始状态符号处,在右边窗口中输入梯形图(如图2-2),接下来的状态转移程序的输入与第一章相同。
sfc写的单轴定位程序单轴定位程序是一种通过控制一个单轴运动的程序,被广泛应用于工业生产中。
下面将以简体中文为依据,详细介绍如何编写一个简单的单轴定位程序。
一、需求分析在编写单轴定位程序之前,我们首先需要明确需求。
假设我们要控制一个单轴运动,使得某一个物体按照给定的路径进行定位。
我们需要输入目标位置和运动时间,然后根据这些参数计算出每个时间点上对应的位置,并发送控制信号给单轴运动控制器。
二、编写步骤1.引入必要的库在编写单轴定位程序之前,我们首先需要引入一些必要的库,例如sfc,用于编写程序逻辑。
2.定义变量我们需要定义一些变量用于存储输入的目标位置和运动时间,以及计算得到的每个时间点的位置。
3.编写主程序首先我们需要读取输入的目标位置和运动时间,然后计算出每个时间点的位置。
接着,我们需要根据位置计算出移动距离和速度,并发送控制信号给单轴运动控制器。
最后,我们需要检查运动是否完成,如果没有完成则继续发送控制信号,直到运动完成为止。
4.编译和调试完成程序的编写后,我们需要对程序进行编译和调试,以确保程序能够正常运行,并达到我们的预期效果。
三、注意事项在编写单轴定位程序时,我们需要注意一些事项,以确保程序能够正常运行。
1.输入验证:我们需要对输入进行验证,确保输入的目标位置和运动时间符合逻辑要求,以及输入的数据类型正确。
2.位置计算:在计算每个时间点的位置时,我们需要根据给定的路径和时间参数进行计算,确保计算的结果正确。
3.控制信号发送:在发送控制信号给单轴运动控制器时,我们需要根据位置计算出移动距离和速度,并发送相应的控制信号,确保单轴能够按照给定的路径进行定位。
4.运动检查:在运动过程中,我们需要监测单轴的位置和状态,并检查运动是否完成。
如果运动没有完成,则需要继续发送控制信号,直到运动完成为止。
以上是关于如何编写一个简单的单轴定位程序的介绍。
通过编写这样的程序,我们可以实现对单轴的定位控制,从而提高工业生产的效率。
总第204期2020年第4期机械管理开发MECHANICAL MANAGEMENT AND DEVELOPMENTTotal 204N o.4, 2020自动化技术与设计 D01:10.16525/l4-1134/th.2020.04.074基于三菱S FC顺序功能图的C IM系统的设计及实现王毅,张辰星(中电科风华信息装备股份有限公司,山西太原030024)摘要:针对在智能工业区块链技术中必不可缺的C I M系统,为了提高C I M系统设计的效率,并增强其可维 护性,基于三菱P L C进行编程,并采用S F C(S eq u en tial F u n ctio n C h a rt,顺序功能图)的编程思路,设计开发了 一 套C I M系统。
客户使用结果表明:通过使用S F C编程方式,使C I M系统的设计效率得到显著提高,且该系统 具有方便维护的特点。
关键词:C I M系统S F C工业区块链中图分类号:T P273 文献标识码:A文章编号:1003-773X(2020)04-0170-03引言工业从1.0时代发展到4.0时代,已经远远超出 了生产制造本身,更多表现为企业如何精准控制成 本,按需、快速、个性化地完成定制生产,实现生产、管理和营销方式的变革,逐步增强市场竞争能力。
综 合来看,工业应用体现出网络化、数字化、智能化的 三大特点,这对整个生产制造周期提出了诸多方面 的挑战。
随着海量的设备接入使得身份鉴定、设备管 理等成为工业安全的隐患。
当前智能生产线中,高度 协同的生产单元涉及各种生产设备,这些设备的身 份辨识可信、身份管理可信、设备访问控制可信是多 方协作的基础,也是实现人与设备、设备与设备之间 的高效、可信、安全地交换设备信息的关键,同时,这 也对设备全生命周期的管理过程及企业智能化管理 提出了新的要求。
CIM生产智能采集系统,是一种专门针对在区 块链工业化生产中,实现全方位管理的智能处理方 案,其终端可以实现数据识别、数据采集、数据备份 以及信息传输等多种功能,还可以通过控制中心实 现对大量终端设备的管理和控制。
三菱运动控制器SFC程序的开发1.三菱SFC编程方法使用运动控制器的机床的基本工作模式可以分为以下类型:①JOG模式②回原点模式③手轮模式④自动模式2. SFC图的构建基本思路①4种工作模式是必不可少的。
②将每个基本工作模式,最基本的工作流程编成一个”子程序”,然后一级一级的调用”子程序”。
编程方法是先构建”主程序”和”模式选择程序”,然后一级一级填空。
2.1 主程序SFC图(图1)主程序只是一个对”工作模式选择”子程序的调用程序。
通过”急停信号”的ON/OFF来实现”调用或退出”子程序。
图1. 主程序SFC流程编制主程序的目的之一,就是只用一个急停信号就可以停止整个程序的运行。
通过参数设定主程序上电后就运行,不受任何条件限制。
主程序处于不断的”跳跃循环”。
2.2 工作模式选择SFC图(图2)图2 工作模式选择流程图工作模式选择子程序本子程序用于”选择各工作模式”-----且每个工作模式是一个子程序。
用选择信号选定或退出子程序。
“退出子程序”是MOTION特有的指令。
图2 中, G62-G65 是模式选择判断条件,如果某一条件满足就选择对应的”工作模式”。
G88-G91是退出某工作模式的判断条件,如果某一条件满足就立即退出对应的”工作模式”,转入重新选择判断。
这些条件判断程序可以在”顺控程序”中编制。
(由信息程序和参数刷新)。
当然也可以在本身的G步中做运算。
构建模式选择程序的好处是:可以在一个模式内设置运行条件和检查问题,而与其他模式不相干。
模式选择程序是第2级子程序。
2.3 JOG模式的SFC图图3 JOG模式的 SFC图注意在JOG模式中,没有K步,只有”计算”步,因为JOG的速度设置和正反转启动只需要启动停止某个M信号。
如图3中的”FS13步”,所以可以用”顺控程序”处理。
还必须注意在程序中的END指令,END指令表示程序结束。
在子程序中表示子程序结束,同时回到”源程序”中。
在本案例中就是回到”工作模式选择SFC图”的G62处,因此如果G62=ON,就又执行JOG 程序一次。
第10卷第6期2003年12月工程设计学报Journa l of Eng i neer i ng D esignV o l .10N o.6D ec .2003收稿日期:2003207202.作者简介:沈 煦(1978-),男,江苏宝应人,硕士生,从事机电一体化研究,E 2m ail :A lbert -shenxu @ ;项占琴(1946-),男,浙江武义人,教授,从事FM S 、机电一体化等研究.基于SFC 的上位机控制程序设计研究沈 煦,项占琴(浙江大学机械与能源工程学院,浙江杭州310027)摘 要:介绍了用PL C 的编程语言标准之一的SFC (顺序功能图)进行上位机控制部分程序的设计与编程,分析了程序设计与编程的可行性以及采用这种方法的优点,并对SFC 用于上位机控制程序出现的死等问题提出了解决方案Λ生产实践证明,将SFC 的编程思想用于上位机控制程序的设计与编程完全可行而且可以极大地提高上位机编程的效率和效果Λ关键词:顺序功能图;上位机控制程序;顺序控制中图分类号:T P 27114;T P 311.51 文献标识码:A 文章编号:10062754X (2003)0620334203Research on PC con trol procedure ba sed on SFCSH EN Xu ,X I AN G Zhan 2qin(Co llege of M echan ical and Energy Engineering ,Zhejiang U n iversity ,H angzhou 310027,Ch ina )Abstract :PC con tro l p rocedu re design and p rogram u sing SFC ,one of the standard p rogram lan 2guage of PL C ,w as in troduced ,the feasib ility and m erits of PC con tro l p rocedu re design and p ro 2gram u sing SFC w ere analyzed .T he so lu ti on to w ait p rob lem in PC con tro l p rocedu re u sing SFC w as advanced .T he feasib ility of PC con tro l p rocedu re design and p rogram u sing SFC is p roved th rough p ractice .T he efficiency and effectiveness of p rogramm ing are i m p roved greatly .Key words :sequen tial functi on chart ;PC con tro l p rocedu re ;sequen tial con tro l 顺序功能图(sequen tial functi on chart ,SFC )是一种图形方式的状态语言,与梯形图(LD )、指令列表(I L )、结构文本(ST )、功能块语言(FBD )一样都是符合IEC 6113123国际标准的PL C 编程语言ΛSFC 是建立在功能基础上的标准化设计方法,它的主要组成部分是工步(或状态)和转换条件,这种工步的划分方法使得原来输出之间的复杂逻辑关系被一些简单的步的转换条件所代替,使得不熟练的设计人员也易于掌握[1]ΛSFC 作为PL C 编程的一种标准,已经在下位机PL C 的编程中得到广泛应用Λ经过实践发现SFC 同样可以用于上位机的某些控制系统部分程序的设计中,并用高级编程语言实现用SFC 设计的框图Λ本文就某钢管公司测长、打标、喷标(m easu re ,m ark and sp ray ,MM S )生产线,介绍了运用SFC 在整个系统上位机控制程序部分的设计方法和编程Λ1 系统简介MM S 软件系统组成示意图见图1Λ图1 系统组成图F ig .1 System compo siti on chartMM S 软件系统由下位机PL C 程序和上位机(工控机)程序组成ΛPL C 程序和上位机程序进行相互协调,共同控制MM S 系统的运行ΛPL C 程序以西门子Step 7软件作为开发环境,主要负责底层的工作;而上位机程序以D elp h i 6.0作为开发环境,负责整个系统的协调工作,分成3部分:界面刷新、控制程序和数据库程序,如图1所示Λ限于篇幅,本文只对上位机控制程序部分的设计方法和编程作简要的介绍Λ111 上位机控制程序的特点上位机控制程序的特点是:(1)控制程序具有周期性重复执行的特点,因而具有类似PL C 的运行方式Λ该系统使用D elp h i 的定时器实现控制程序的周期性调用Λ(2)控制程序内部不能出现等待语句Λ控制中出现的延时问题必须由其他方式解决,不能单纯地用等待语句来解决Λ(3)通过西门子公司提供的动态链接库(DLL )和CP 5611通信卡,实现上位机与S 72400PL C 系统的通信,读取PL C 的状态,将控制信号发送给PL C Λ112 采用SFC 编写上位机控制程序的优点在工业控制中,顺序控制是一种广泛使用的控制,它是自动控制的一个重要分支Λ用SFC 进行编程具有简单直观的特点,它的应用使下位机顺序控制的实现更加容易,可大大缩短设计时间[2]Λ因此,如果能将SFC 用于该系统上位机控制程序部分的设计与编程,势必也能发挥SFC 的优点Λ另一方面,在现场调试的过程中,如果控制程序出了问题,用SFC 编写出来的程序比较容易查出出错的程序段,甚至可以直接定位出错的语句Λ1.3 SFC 编写上位机控制程序的可行性SFC 是PL C 的一种编程标准,该系统上位机控制程序具有类似PL C 的运行方式:顺序控制Λ被控系统有测长、打标、喷标三个主要工位,还包括上料、下料等辅助工位,每根钢管都要依次经过这些工位,完成相应的动作Λ各个工位并行工作,具有顺序执行的特点,因而可以用SFC 进行编程,但对程序中出现的等待,需要加以解决,不然用SFC 实现的上位机控制程序就不能实现预定的功能Λ因为上位机的控制程序需要有实时响应的能力,如果有死等的话,会产生两个后果:第一,程序是顺序扫描的,当界面上的一个按钮按下去,如果此时程序正处于等待状态,那就要等到等待结束才能响应,比如“紧停”按钮按下了,不能及时响应的话,有可能引起严重的生产事故;第二,控制程序里面的语句还没有扫描完,定时器(该系统设为250m s )的时间已经到了,开始了下一轮的循环,由于有的语句没有执行到,势必会使生产线处于瘫痪Λ可见解决程序中出现的等待问题是非常重要的Λ1.4 控制程序中等待问题的解决方法以解决控制程序中打标机与上位机通讯中的延时为例来说明这类问题的解决方法Λ系统准备就绪,也就是所有条件都满足后,上位机向打标机发送一串字符,然后延时500m s ,等待打标机返回应答信号,以确定传送是否成功Λ在控制程序的编写中,对于这个功能块,一般是写成一个函数(如Send 2StringA ndCheck 函数),实现上述的传送字符及接受应答的工作[3],这就出现了死等状态,因此这种方法对用SFC 编程的上位机程序并不可行Λ为了解决这个问题可以采取以下的方法:将上述的函数拆成两个函数:字符发送函数(SendString )和确认传送成功函数(SendF in ished ),根据图2所示的SFC 图就可以有效解决程序执行过程中的死等问题[4]Λ图2 程序流程顺序功能图F ig .2 Sequen tial functi on chart of p rocedu re flow・533・ 第6期沈 煦,等:基于SFC 的上位机控制程序设计研究 这段SFC可以用D elp h i写成如下程序:……SendString(strings); 发送字符给喷标机的函数if SendF in ished()=false then 判断有没有收到应答, false为没有收到 begin Step:=S6; 用Step表示当前状态 …… 未收到应答,继续下一道工序的工作 endelse begin Step:=S8; …… 接收到喷标机的应答后进行相应的工作 end; ……[5,6]图2及程序中的{S0,S1,…,S8,…}是一个枚举类型的变量,用来表示生产线相应的工序,用Step来标志当前状态Λ可以看出当发送完字符后,程序不是处于等待确认码的状态,而是通过一个判断语句查询应答有没有返回,根据不同的情况执行不同的操作Λ不管应答有没有返回,程序都会一直往下执行,因此程序中不会出现死等与在定时器的循环周期内未能循环完的情况Λ程序语句的执行时间很快,相对于等待应答等过程几乎可以忽略不计,因此,考虑到最糟糕的情况,即刚刚判断完有没有应答,转入相应的无应答程序,应答就返回了,也不会影响程序的正常逻辑,因为程序中没有等待,语句执行速度很快,很快就能扫描完,下一次扫描到这个点的时候,就会转入接收到应答的程序段去执行,从而避免了死等Λ这种方法可以推广到控制程序中所有可能用到等待的地方,用来解决SFC用于上位机控制程序出现的等待问题Λ这使得SFC应用于具有顺序控制特点的上位机程序完全可行Λ2 结束语本文提出了将标准的PL C编程语言SFC用于上位机控制程序的设计与编程中,并解决了程序设计与编程中不允许出现的等待问题Λ该系统软件用于MM S系统中,现场运行效果良好Λ参考文献:[1]XU Hong2fei,LU Zh i2gang(徐鸿飞,卢志刚).SFC’sA pp licati on in p rocess con tro l[J].S hang ha i E lectricT echnology(上海电器技术),1999,(2):18-21.(in Ch inese)[2]W AN G H eng2sheng,L I D an2feng,LON G Y ing2chun(王恒生,李丹峰,龙迎春).SFC p rocedu re design m ethod of PL C[J].M echan ica l&E lectrica l E ng ineer2 ing(机电工程),2002,17(11):38-39.(in Ch inese)[3]ZHAN G H ai2fan(张海藩).In trod uction to S of t w a reE ng ineering(软件工程导论)[M].Beijing:Q inghua U2n iversity P ress,1987.(in Ch inese)[4]W AN G Xuan(王 选).S of t w a re D esig n M ethod(软件设计方法)[M].Beijing:Q inghua U n iversity P ress, 1987.(in Ch inese)[5]T E I XE I RA S,PA CH ECO X.T ran slated by LON GJ in2song,W AN G Yu,X IE Shang2shu(龙劲松,王 瑜,谢尚书,译).S teve T eix eira and X av ier P acheco:D ep lh i6D eveloop er’s Gu id e(D elph i6开发人员指南)[M].Beijing:Ch ina M ach ine P ress,2002.(in Ch inese)[6]S ta te S tand a rd Co m p ile of Co m p u ter S of t w a re E ng i2neering S tand a rd(计算机软件工程规范国家标准)[S].Beijing:Ch ina Standard P ress,1992.(in Ch inese)(上接第320页)[5]Z A GROD ZK I P.A nalysis of T hermo2m echan ical phe2nom ena in m u lti2disc and b rakes[J].W ea r,1990,(40):291-308.[6]DAV I D A.Pace modeling heat tran sfer in a w et clu tch[J].SA E901655.[7]Z A GROD ZK I P.Influence of design and m aterial fac2to rs on therm al stresses in m u lti p le disc w et clu tchesand b rakes[J].SA E911883.[8]W EN Sh i2zhu(温诗铸).T ribology T heory(摩擦学原理)[M].Beijing:Q inghua U n iversity P ress,1990.(in Ch inese)[9]HOLM AN J P.T ran slated by M A Q ing2fang,M AChong2fang,W AN G X ing2guo(马庆芳,马重芳,王兴国,译).H ea t T ransf er(传热学)[M].Beijing: Peop le’s Educati on P ress,1979.(in Ch inese)・633・工 程 设 计 学 报第10卷。