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

1200 SCL学习笔记

一. IF. 如果。下面是一个起保停

IF #I_start AND NOT #I_stop THEN //如果I_start接通  和  I_stop没有接通#Q_run := 1;                 //输出Q_run 接通
ELSIF #I_stop THEN               //如果I_stop接通#Q_run := 0;                 //。。。。。。
END_IF;

二. CASE

CASE #NUM OF1:                  // 如果NUM=1#Q_run_1 := 1;2..4:               // 如果NUM = 2 到 4#Q_run_2 := 1;ELSE                // 否则...#Q_run_1 := 0;#Q_run_2 := 0;
END_CASE;

三. for

1. 首次循环时,循环变量被赋起始值,然后执行代码。结束后,循环变量的值与步值相
加,然后判断是否超出结束值,如果没有超出,则执行代码;如果超出,则跳出FOR循环,继续执行END_FOR后面的代码。
注意以下几点:
① 起始值与结束值在循环过程中不能更改;
② 步值可以是正数,也可以是负数,不能为0;
③ 如果步值是正数,则结束值要大于等于起始值;
④ 如果步值是负数,则结束值要小于等于起始值;
⑤ 如果没有使用BY关键字指明步值,则默认为1

2. 如下图所示,num一直到了6(1,2....6)。 但是内部的程序只执行了5次。

#sta_sum := 0;FOR #num := 1 TO 5 DO#sta_sum := #sta_sum + 2;END_FOR;// 0-2
// 2-4
// 4-6
// 6-8
// 8-10  

四. 上升沿检测 和 下降沿

1. 举个例子:假设使用I0.0(变量名:start)连接的按钮的上升沿来启动某个电机。启动
按钮连接常开触点,正常情况下I0.0的值为0,当按下按钮时,I0.0的值为1;继电器线圈连
接输出地址Q0.0(变量名:motor),中间变量M0.0(变量名:interFlag)用来保存上升沿
的状态。SCL程序代码如图8-3所示

"R_TRIG_DB_1"(CLK:=#start,         // start----I0.0Q=>#P_Start);        // P_Start--脉冲IF #P_Start THEN                   // 监控#P_Start 来控制输出#Q_RUN := 1;
END_IF;

五. 定时器

以延时接通定时器为例

#T.T1(IN:=#start,      // IN 启动信号PT:=#TimeSET,    // PT 设定值Q=>#Q_RUN,       // Q  输出ET=>#Q_ET);      // ET 定时器当前值

六. 计数器(ctu加计数器为例)

七. 移动指令

1. MOVE_BLK指令。 

(1). 该指令可以从一个存储区地址拷贝一定数量的数据到另一个存储区,拷贝的数据必须是
相同的数据类型.

(2). MOVE_BLK指令移动的数据必须存放在数组中。

MOVE_BLK(IN:="数据块_1".ARR_1[0],    // 源数据中的第一个元素COUNT:=3,                   // 要拷贝的数据的个数OUT=>"数据块_1".ARR_2[0]);  // 目标数据中的第一个元素

2. UMOVE_BLK: 指令与MOVE_BLK指令的参数及用法都相同。唯一不同的地方是:
UMOVE_BLK指令的执行过程不会被中断,这使它很适合用于一些重要的、不希望被中断的数据拷贝。

3. FILL_BLK指令
该指令用指定的数据来填充存储区中的某段区域,操作的目标是数组。

该指令有3个参数:
① IN:用来填充的数据,可以是整数、实数、字符、日期时间等数据类型。
② COUNT:要填充的数据个数,可以是USINT、UINT或者UDINT类型。
③ OUT:要填充的目标地址(数组)。

FILL_BLK(IN:=16#ff,COUNT:=10,OUT=>"数据块_1".ARR_2[0]);

八. 转换指令

1. ROUND: 取整

// ROUND指令. 将[实数]四舍五入,变成[DINT]
"Tag_22" := ROUND(real#1.8);     // 返回2

2. CEIL : 向上取整

// CELL 向上取整 返回值:2
"Tag_22" := CEIL(real#1.1);

3. FLOOR : 向下取整。 如1.8,返回1.

4. TRUNC : 截尾取整。 如1.5,返回1.

http://www.xdnf.cn/news/1355293.html

相关文章:

  • 【Java SE】抽象类与Object类
  • 51单片机-实现外部中断模块教程
  • SpringBoot3整合dubbo3客户端【最佳实践】
  • 编程刷题-染色题DFS
  • 【C标准库】详解<stdio.h>标准输入输出库
  • CUDA和torch的安装
  • 什么是多元线性回归,系数、自变量、因变量是什么,多元线性回归中的线性是什么
  • 多光谱相机检测石油石化行业的跑冒滴漏的可行性分析
  • 【yocto】Yocto Project 配置层(.conf)文件语法详解
  • calchash.exe和chckhash.exe计算pe文件hash值的两个实用小工具
  • 智慧零售漏扫率↓79%!陌讯多模态融合算法在智能收银与货架管理的实战解析
  • 双目密集匹配(stereo dense matching)
  • stack,queue以及deque的介绍
  • 深度学习中主流激活函数的数学原理与PyTorch实现综述
  • 【字母异位分组】
  • 随机森林1
  • 【机器学习深度学习】多模态学习
  • 【GaussDB】使用MySQL客户端连接到GaussDB的M-Compatibility数据库
  • 【85页PPT】数字化转型LIMS大型企业智能制造之LIMS实验室管理系统产品解决方案(附下载方式)
  • MVC模式在个人博客系统中的应用
  • 简单介绍计算机的工作过程
  • 激光雷达工作原理
  • 算法训练营day59 图论⑨ dijkstra(堆优化版)精讲、Bellman_ford 算法精讲
  • C++初阶(2)C++入门基础1
  • 第1篇:走进日志框架的世界 - 从HelloWorld到企业级应用
  • 为什么在WHERE子句里使用函数,会让索引失效
  • 复杂工业场景误报率↓85%!陌讯多模态火焰识别算法实战解析
  • Codeforces Round 1043 (Div. 3)(A-E)
  • 历史数据分析——半导体
  • 【科研绘图系列】浮游植物的溶解性有机碳与初级生产力的关系