博途的多步过程控制, 寄存器寻址

2023-05-16

1,实际生产中,收到的开关信号往往是短信号/脉冲

2, Step 变化的逻辑和设备的逻辑分开。Step的变化逻辑在实际中往往是设备的反馈信号决定,在此处用定时器信号代替。定时器的触发用Step的状态触发,写在IF ELSIF 语句之外,用定时器(或设备反馈)的Q驱动Step的更新

3,IF ELSIF 之间是互斥事件

4, 如果只用IF ELSIF 而不用ELSE, 那么短信号的判断条件有效, 结果且带自锁

5, 如果用了IF ELSIF + ELSE,那么长信号的判断条件有效,结果且不带自锁, 短信号判断条件时效过后, 会自动跳至Else

6,如果使用IF ELSIF 语句,那么每条结果最好都写上所有OutPut的状态,例如这里的“电机正转”,“电机反转”,“指示灯闪烁”,这样逻辑更严谨

7,多个相同设备的模板程序,需要通过Input OutPut传入参数的程序需要用FB,而不是FC。因为FC中的InPut和OutPut没有分配内存,表现在程序中就是:通过FC块传入的Input变量在做If 条件时,判断的结果OutPut没有自锁功能

启动	Bool	false
停止	Bool	false
Output		
电机正转	Bool	false
电机反转	Bool	false
指示灯闪烁	Bool	false
InOut		
		
Static		
上升沿	Array[0..5] of Bool	
Step	Int	0
R_TRIG_Start	R_TRIG	
TON1	TON_TIME	
T1On	Bool	false
TON2	TON_TIME	
R_TRIG_Stop	R_TRIG	

REGION #启动和停止的触发
    #R_TRIG_Start(CLK := #启动,
                  Q => #上升沿[0]);
    
    #R_TRIG_Stop(CLK := #停止,
                 Q => #上升沿[1]);
    
END_REGION

REGION Step 顺序控制步数的更新
    IF #上升沿[0] THEN
        #Step := 1;
        ;
    ELSIF #TON1.Q THEN
        #Step := 2
        ;
    ELSIF #TON2.Q THEN
        #Step := 3
        ;
    ELSIF #上升沿[1] THEN
        #Step := 0
        ;
        
    END_IF;
    
END_REGION

REGION 根据Step的状态更新设备状态
    IF #Step = 1 THEN
        #电机正转 := TRUE;
        #电机反转 := FALSE;
        #指示灯闪烁 := FALSE;
        ;
    ELSIF #Step = 2 THEN
        #电机反转 := TRUE;
        #电机正转 := FALSE;
        #指示灯闪烁 := FALSE;
        ;
    ELSIF #Step = 3 THEN
        #电机反转 := FALSE;
        #电机正转 := FALSE;
        #指示灯闪烁 := FALSE;
    ELSIF #Step = 0 THEN
        #电机反转 := FALSE;
        #电机正转 := FALSE;
        #指示灯闪烁 := TRUE;
        ;
    END_IF;
    
END_REGION


REGION 根据Step更新定时器状态
    #TON1(IN := #Step = 1,
          PT := T#5S);
    
    #TON2(IN := #Step = 2,
          PT := T#5S);
END_REGION

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

博途的多步过程控制, 寄存器寻址 的相关文章

随机推荐

  • MyString(字符串类)实现

    字符串类 xff08 MyString xff09 说明文档 一 MyString 类的组成 1 1 私有成员 char data 字符型指针 int length 整型字符串长度 1 2 共有成员 1 2 1 构造与析构函数 MyStri
  • ROMFS的建立

    参考 xff1a VxWorks 7 File Systems Programmer s Guide
  • MyMatrix(二维矩阵类)实现

    二维矩阵类 xff08 MyMatrix xff09 说明文档 一 MyMatrix 类的组成 1 1 私有成员 int row 二维矩阵行数 int col 二维矩阵列数 T data 二维矩阵数据 1 2 共有成员 1 2 1 构造与析
  • 基于CUDA和TCP通信的大数据双机加速计算(CUDA加速、内存优化、TCP多机协同)

    1 环境 技术简介 1 1 程序运行环境 1 server端计算机 操作系统 xff1a Ubuntu 18 04 5 LTS 运行环境 xff1a VSCode或Bash终端 2 client端计算机 操作系统 xff1a Ubuntu
  • RGB888转换为RGB565格式

    RGB888转换为RGB565格式 RGB888用unsigned int 32位字节存储 00000000R7 R6 R5 R4 R3 R2 R1 R0 G7 G6 G5 G4 G3 G2 G1 G0 B7 B6 B5 B4 B3 B2
  • Keil5界面配置

    配置一 xff1a 绿色 Specification for text selection and caret line selection fore 61 00FFFF selection back 61 004000 caret for
  • Linux内核调试环境(centos+gdb+qemu)

    一 写在前面 主要介绍qemu在Centos中的安装过程 xff0c 以及遇到的一些麻烦 网上教程好多都是在Ubuntu环境下的安装 xff0c 但是公司给的环境大都是Centos xff0c 没办法花了一天的时间 xff0c 磕磕绊绊弄好
  • Linux中修改系统启动项grub

    在修改grub时看到很多资料 xff0c 上来就是直接修改 etc default grub配置文件中的GRUB DEFAULT配置项 xff0c 但是有时候修改不成功 xff0c 本文简单说明一下修改的原理 注 xff1a 根据本人机器上
  • C语言调用cJSON库解析json

    一 源代码文件下载 自己使用时可以只需要其中的cJSON c和cJSON h文件就可以了 xff0c 只需要将cJSON和自己的main文件一起编译即可 下载地址 xff1a cJSONFiles zip 互联网文档类资源 CSDN下载 二
  • Java学习记录 (一)

    使用 BufferedReader 按行读入文档内容 InputStream input file span class token operator 61 span null span class token punctuation sp
  • cmake学习5:如何将自己的库作为第三方库给别人使用

    前言 自己在使用cmake进行编译工程的时候不太了解cmake的基本使用方法 有时候出现找不到第三方库的问题也不知如何排查 因此相对cmake有个稍微系统的认识 希望能用这个强大的工具来更好的为自己的工程服务 因此总结为了几篇博客 主要参考
  • C++头文件包含顺序

    Google C 43 43 编程风格指南 对于头文件的包含顺序是这样的 xff1a Names and Order of Includes link Use standard order for readability and to av
  • VLC Web插件踩坑记录

    VLC Web插件 问题描述 近期由于工作项目组人员变动 xff0c 来到新的项目组 xff0c Leader约谈前期也不安排过多任务 xff0c 但是有一个项目中现有的问题需要解决 项目中视频在线播放功能需要支持在线播放 avi媒体格式
  • cmake添加第三方库

    主要方法 将包含目录添加到构建中 span class token function include directories span span class token punctuation span D span class token
  • UART+DMA数据传输

    DMA的概念 DMA xff08 Direct Memory Access xff09 即直接内存访问 xff0c DMA传输方式无需CPU直接控制传输 xff0c 通过硬件为RAM I O设备开辟一条直接传输数据的通路 xff0c 能使C
  • asp.net core 3.1 应用部署到国产服务器 centos7 自动启动

    首先安装依赖 xff1a 注册 Microsoft 密钥 注册产品存储库 安装必需的依赖项 sudo rpm Uvh https packages microsoft com config centos 7 packages microso
  • Visual Studio2022 离线安装包下载

    首先去官网下载引导程序 xff1a https docs microsoft com en us visualstudio install create an offline installation of visual studio vi
  • MWC-电机、电池螺旋桨搭配

    原址 xff1a http blog sina com cn s blog 402c071e0102v2xv html 电池 电机 螺旋桨搭配 1 电机 1 电机KV值 xff1a 大KV配小桨 xff0c 小KV配大桨 KV值是每1V的电
  • linux系统发送http请求示例:

    http post示例 xff1a curl H 34 Content Type application json 34 X POST d 39 34 ChannelInfo 34 34 algoList 34 34 CarDetectio
  • 博途的多步过程控制, 寄存器寻址

    1 xff0c 实际生产中 xff0c 收到的开关信号往往是短信号 脉冲 2 Step 变化的逻辑和设备的逻辑分开 Step的变化逻辑在实际中往往是设备的反馈信号决定 xff0c 在此处用定时器信号代替 定时器的触发用Step的状态触发 x