返回主站|会员中心|保存桌面

西门子PLC服务商    

PLC、变频器、电机,触摸屏,低压

联系方式
  • 联系人:方经理
  • 电话:13073017555
  • 邮件:gzws26@126.com
新闻分类
  • 暂无分类
首页 > 新闻中心 > S7-300+MP277 想在屏上可以设定气缸夹紧顺序,应该怎么做!
新闻中心
S7-300+MP277 想在屏上可以设定气缸夹紧顺序,应该怎么做!
发布时间:2026-08-08        浏览次数:1        返回列表

操作人员在 MP277(WinCC flexible)界面,编辑 / 选择气缸动作顺序,PLC 按照配置好的顺序执行夹紧动作,支持延时、到位信号跳转。硬件:S7‑300 CPU,MP277;软件:STEP7 V5.x + WinCC flexible 2008。

整体架构思路

步序表(数组 DB 块)+PLC 状态机执行 + MP277 读写数组

  1. PLC 侧建立步序结构体 UDT,数组 DB(保持性 DB),每一步保存:执行动作、延时时间、跳转条件;

  2. MP277 画面:表格输入,修改 DB 数组里面每一步的气缸编号、动作、延时;

  3. PLC 状态机循环读取步序表,一步步执行;

  4. 多套工艺:使用 WinCC flexible配方功能保存多套夹紧顺序,一键调用 / 保存配方到屏存储卡。

两种方案:

  • 方案 A:固定最大步骤数,操作员填写每一步执行哪个气缸

  • 方案 B:自由编辑任意步

第一步:S7‑300 PLC 侧数据结构(STEP7)

1、新建 UDT(用户自定义数据类型):UDT_STEP

每一步的配置信息:

表格

变量类型说明
CylNoInt要动作的气缸编号:1 = 气缸 1,2 = 气缸 2,3 = 气缸 3…
ActionInt0 = 无动作,1 = 伸出夹紧,2 = 缩回松开
DelayTimeTIME本步执行完成后等待延时
StepEnableBool该步是否启用

举例:Step1:CylNo=1,Action=1 → 第一步气缸 1 伸出夹紧;到位 + 延时结束进入下一步。

2、新建 DB 块 DB10_Sequence(勾选保持性属性

数组:StepTable ARRAY[0..15] OF UDT_STEP,最多 16 步夹紧流程,可以按需扩大。变量:

  • CurrentStep:Int;当前正在执行的步骤

  • SeqStart:Bool;启动夹紧序列

  • SeqDone:Bool;序列全部完成

  • SeqAlarm:Bool;超时报警

DB 必须勾选保持,断电配置不会丢失;S7‑300 需要 MMC 卡支持保持数据。

3、PLC 执行逻辑(ST 语言优先,也可用 LAD)

核心逻辑:状态机按步序表执行,判断气缸磁性开关到位信号 + 延时,完成后进入下一个步号。伪代码:

st

IF SeqStart AND NOT Running THEN
    CurrentStep:=0;
    Running:=TRUE;
END_IF;

IF Running THEN
    CASE CurrentStep OF
    0..15:
        IF StepTable[CurrentStep].StepEnable THEN
            //输出气缸动作
            CASE StepTable[CurrentStep].Action OF
                1: Cylinder[StepTable[CurrentStep].CylNo].Out:=TRUE;
                2: Cylinder[StepTable[CurrentStep].CylNo].Ret:=TRUE;
            END_CASE;

            //判断气缸到位 + 延时完成
            IF Cylinder[StepTable[CurrentStep].CylNo].Reach AND TON_Delay.Q THEN
                CurrentStep:=CurrentStep+1; //进入下一步
                R TON_Delay;
            END_IF;
        ELSE
            CurrentStep:=CurrentStep+1; //本步禁用直接跳过
        END_IF;
    16:
        Running:=FALSE;
        SeqDone:=TRUE; //全部步骤结束
    END_CASE;
END_IF;

附加功能:

  1. 每一步增加超时定时器,到位长时间不到位输出 SeqAlarm 报警;

  2. 急停复位:Running 清零,所有气缸复位缩回;

  3. 气缸建议封装成 FB,每个气缸包含:伸出输出、缩回输出、伸到位、缩到位、超时报警。

不要用 GRAPH 做写死的固定步,GRAPH 步是离线写死,不能 HMI 在线改顺序

第二步:MP277 WinCC flexible 画面配置

MP277 不能直接显示结构体数组表格,两种实现方式:

方式 1:IO 域拼接表格(简单,项目最常用)

  1. 建立画面,做表格布局;每一步放一组 IO 域:

    • IO 域绑定:DB10_Sequence.StepTable[0].CylNo

    • IO 域绑定:DB10_Sequence.StepTable[0].Action

    • IO 域绑定:DB10_Sequence.StepTable[0].DelayTime

    • 复选框绑定:DB10_Sequence.StepTable[0].StepEnable

  2. 复制多组,索引 0‑15 对应 16 个步骤。

操作员直接输入:第 1 步执行气缸 2 伸出,第 2 步气缸 1 伸出…… 就修改了夹紧顺序。

方式 2:WinCC Flexible 配方功能(多套工艺保存,推荐)

如果设备需要多套夹紧顺序,一键切换,用配方功能。

  1. 配方→新建配方,配方变量全部关联 DB10_Sequence 里面的 StepTable 数组全部成员。

  2. 画面拖入【配方视图】控件。

  3. 操作员操作:

    • 新建配方:“工艺 A 夹紧顺序”;

    • 在画面表格修改每一步气缸号、动作、延时;

    • 保存配方到 MP277 存储卡;

    • 需要时直接加载配方,自动把整套顺序下载到 PLC 的 DB10。

重要:配方存储在 MP277 的 SD 卡;如果屏损坏,SD 卡可以保存所有工艺顺序,更换新 MP277 直接导入即可。

操作示例(操作员界面)

表格

步骤启用气缸编号动作 (1 夹紧 / 2 松开)延时 ms
021500
111800
2311000
322300

PLC 执行顺序:气缸 2 夹紧→延时 500ms→气缸 1 夹紧→延时 800ms→气缸 3 夹紧→延时 1000ms→气缸 2 松开。

现场注意

  1. DB 块必须勾选保持性,否则断电,HMI 设置的顺序全部清零。S7‑300 必须 MMC 卡,否则保持失效。

  2. MP277 修改 DB 数组是实时写入 PLC;禁止设备运行过程中修改步序,修改必须在待机状态下,增加互锁:自动运行时,HMI 输入域禁止操作。

  3. 动作编码要做范围校验:PLC 判断 CylNo 不能超过实际气缸总数,Action 只能 0‑2;防止 HMI 输入非法数字导致程序异常。

  4. 气缸到位信号必须可靠,增加超时报警;如果磁性开关损坏,不能无限等待下一步。

  5. MP277 时间类型 TIME 变量 WinCC flexible 直接输入不方便;建议 DB 里面用 DINT 存毫秒数,PLC 内部转 TIME,HMI 输入毫秒数字,操作更友好。

  6. 权限:修改夹紧顺序设置高级用户权限,普通操作员不能修改。

两套方案对比

表格

方案优点缺点适用场景
IO 域直接读写 DB 数组简单,调试方便,不需要配方只能保存 1 套顺序设备只有 1 套夹紧工艺,偶尔修改顺序
WinCC Flexible 配方视图保存多套工艺,一键调用,SD 卡备份配置工作量大多产品切换,多套夹紧顺序

简化替代方案

气缸数量≤3 个,不需要任意顺序,只需要选择顺序模式 1 / 模式 2 / 模式 3:PLC 内部 CASE 写几套预设顺序,MP277 只做一个 Int 输入框选择模式号,PLC 执行对应 CASE 分支。缺点:不能自由任意编辑每一步,只能预设几套。

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服