当前位置: 首页 > news >正文

SCL 常见问题

常见问题

问题列表:

  • 如何监视循环指令?

  • CASE OF 指令如何实现顺控功能?

  • 如何导入导出 SCL 源文件?

  • 如何使用经典 Step7 的接口型式?

  • 为什么 GOTO 指令会编译报错?

问题1:如何监视循环指令?

正常监视如图1所示,无法监控到循环程序内部的执行情况。

图片

图1 监视页面

①点击监视按钮

②可以看到FOR循环内部没有任何变量显示

如果希望监视循环内部执行情况,可以在监视中的SCL程序任意位置,如图2中操作。

图片

图2 点击监视循环

激活监视循环后,跳出窗口如图3所示,点击按钮“是”。

图片

图3 警告窗口

之后,就可以如图4所示的,看到循环内的情况,不过这会造成增加CPU循环时间,并且只能监控到第一个循环。

图片

图4 监视循环

问题2:CASE OF 指令如何实现顺控功能?

通过CASE OF指令,可以比较容易实现类似顺控的功能,并且编程方法便捷、可读性较好。可以使用类似于下面的编程方式实现类似顺控的功能:

CASE 步骤号 OF //Int类型步骤号,一般位于FB的Static
0:
步骤0
逻辑编程 //一般初始步不执行具体操作,只是初始化,然后是等待开始
IF 条件 THEN
步骤号:=1;
ELSIF 错误 THEN
步骤号:=100;
END_IF;

1:
步骤1
逻辑编程
置位复杂指令i.REQ
IF 复杂指令i.DONE THEN
复位复杂指令i.REQ
步骤号:=2;
ELSIF 复杂指令i.ERROR
复位复杂指令i.REQ
步骤号:=100;
END_IF;

2:
步骤2
逻辑编程
置位复杂指令m.REQ
IF 复杂指令m.DONE THEN
复位复杂指令m.REQ
步骤号:=3;
ELSIF 复杂指令m.ERROR
复位复杂指令m.REQ
步骤号:=100;
END_IF;

.
.
.

n:
步骤n
逻辑编程
置位复杂指令x.REQ
IF 复杂指令x.DONE THEN
复位复杂指令x.REQ
步骤号:=n+1;
ELSIF 复杂指令x.ERROR
复位复杂指令x.REQ
步骤号:=100;
END_IF;
.
.
.
100:
错误处理 逻辑编程
步骤号:=0
END_CASE;

复杂指令0 //复杂指令调用
复杂指令1
.
.
.
复杂指令n

输出Busy、Done、Status等

复杂指令一般包含:通信、运动控制、读配方、写数据日志、读写数据记录、定时器等异步指令,这些指令通常不放在CASE语句的逻辑中,而是在最后统一调用。

一般通过复杂指令完成位、错误位等作为跳转条件。如果是定时器,也可以通过判断时间是否到达作为跳转条件。

例子:使用CASE OF指令编程运动控制,第一步相对运动以200mm/s的速度移动10000mm,第二步速度控制以100mm/s的速度移动15s,第三步停止。

图5为FB块的参数部分,图6为程序。

图片

图5 FB参数

图片

图6 源程序

问题3:如何导入导出 SCL 源文件?

可以将SCL编写的块,或者全局DB以及UDT导出成源文件,可以导出块或UDT,也可以导出所关联嵌套的块或者UDT,如图7所示。

外层块
SCL编写 OB/FC/FB全局DBUDT背景DB工艺DBPLC变量
嵌套可以导出可以导出可以导出可以导出但没有变量不可以导出不可以导出
UDT可以导出可以导出可以导出可以导出但没有变量不可以导出不可以导出
SCL编写 FC/FB可以导出-----
背景DB---可以导出但没有变量--

导出方式参见图7。

图片

图7 导出源文件

通过选择“仅所选块”导出当前块,即表中绿色底色的部分。通过选择“包含所有关联块”,导出嵌套的UDT、程序块,即表中红色底色的部分。

导入源文件方式如图8-9所示。

图片

图8 导入源文件

图片

图9 从源生成块

通过导入的方式可以导入单独内容的源文件,也可以导入包含多个内容的源文件。

问题4:如何使用经典 Step7 的接口型式?

在TIA PORTAL V15.1之前,SCL块的接口方式和其他编程语言是一致的。从V15.1开始,SCL块的接口方式可以修改成和经典STEP7相同的方式,操作方式如图10所示。

图片

图10 块接口设置

①在TIA PORTAL选项中选择设置

②左边选择“SCL(结构化控制语言)”

③在块接口选择“文本视图”,此设置默认选择表格视图。设置完,再新建的SCL块即使用所选择的视图。之前新建的SCL块不变。

如图11所示为文本视图的SCL。

图片

图11 文本视图SCL

问题5:为什么 GOTO 指令会编译报错?

如图12-13所示,在LAD/FBD中的SCL编写GOTO指令时会编译报错,所以不要在这里编写GOTO指令。建议在LAD/FBD中的SCL不要使用过于复杂的编程,如果需要实现较为复杂的程序,建议单独把SCL组织成为一个子程序,然后在LAD/FBD中调用。

图片

图12 编译报错

图片

图13 语法错误

PLC协议转换网关:巨控NET400

如何判断S7通信中断

S7-1500R/H PROFIBUS DP 通信

如何实现PLC短信报警

S7-1500的Modbus TCP通信CONNECT参数设置说明

WinCC  Modbus TCP 通信

wincc 远程和PLC通讯方案

1500PLC与wincc通过4G网络远程通讯

WINCC中自定义 XY 轴的多功能曲线的实现方法

wincc报警如何通过短信发送给手机

在WinCC(TIA Portal)项目中,如何正确的使用面板,模板,弹出窗口和滑入窗口?

通过巨控GRM532Y-C远程调试下载国外PLC

巨控GRM远程模块配置使用流程简介

巨控远程模块微信报警配置方法

TIA中如何将数据块的实际值转到初始值中

西门子200smart与三菱FX3U plc之间的自由口通讯

wincc 远程和PLC通讯方案

1500PLC如何更好地配置一个OPC UA客户机使其与服务器进行有效的通信?

如何使用EXCEL访问WinCC中的实时数据实现报表

西门子PLC无线通讯解决方案

数据丟了--WinCc历史数据丢失怎么办

巨控无线通讯模块在带式输送机行业的应用

WinCC激活故障排除及解决思路

Wincc在手机端监控_巨控OPC560解决方案

PLC之间的Profibus 通讯

怎么远程控制国外的PLC

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 异常整理(JAVA基础)
  • 【C++】STL容器详解【上】
  • Java——堆
  • 路灯集中控制器与智慧照明:塑造未来城市的智能光影
  • 亦菲喊你来学机器学习(20) --PCA数据降维
  • 江协科技stm32————11-5 硬件SPI读写W25Q64
  • explicit 的作用(如何避免编译器进行隐式类型转换)
  • 并发编程:synchronized 关键字
  • 【Linux】Linux 可重入函数
  • 0.ffmpeg面向对象oopc
  • 项目实战系列三: 家居购项目 第五部分
  • C++ STL-Map容器从入门到精通详解
  • HarmonyOs DevEco Studio小技巧9--翻译软件
  • 怎么利用XML发送物流快递通知短信
  • qml Component 组件
  • [笔记] php常见简单功能及函数
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • css的样式优先级
  • django开发-定时任务的使用
  • MaxCompute访问TableStore(OTS) 数据
  • python 学习笔记 - Queue Pipes,进程间通讯
  • scala基础语法(二)
  • Spark RDD学习: aggregate函数
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • unity如何实现一个固定宽度的orthagraphic相机
  • Vue组件定义
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 汉诺塔算法
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 使用parted解决大于2T的磁盘分区
  • ​configparser --- 配置文件解析器​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #VERDI# 关于如何查看FSM状态机的方法
  • (1)bark-ml
  • (C语言)逆序输出字符串
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .Net 8.0 新的变化
  • .NET Core 版本不支持的问题
  • .net 连接达梦数据库开发环境部署
  • .net 生成二级域名
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net6 webapi log4net完整配置使用流程
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET中的Exception处理(C#)
  • 。Net下Windows服务程序开发疑惑
  • @antv/x6 利用interacting方法来设置禁止结点移动的方法实现。
  • @SuppressWarnings(unchecked)代码的作用
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [AIGC] Java 和 Kotlin 的区别
  • [Android View] 可绘制形状 (Shape Xml)