首页 > 其他分享 >一些提高自动化率的指令

一些提高自动化率的指令

时间:2024-04-19 11:33:47浏览次数:14  
标签:rdaddr LIM GlobleDB 提高 Manual State 指令 mode 自动化

  1. 地址相关
//依据HWIO计算IW QW地址
#tempAIw := RD_ADDR(LADDR := #Interface_panel.AI_HW_IO, PIADDR => #AI_rdaddr.piadder, PICount => #AI_rdaddr.picount, PQADDR => #AI_rdaddr.temppiadder, PQCount => #AI_rdaddr.temppicount);
#tempAQw := RD_ADDR(LADDR := #Interface_panel.AQ_HW_IO, PIADDR => #AQ_rdaddr.temppqadder, PICount => #AQ_rdaddr.temppqcount, PQADDR => #AQ_rdaddr.pqadder, PQCount => #AQ_rdaddr.pqcount);
//将IW值赋值给中间变量
//PEEK默认读取一个BYTE的地址长度,可以_选择长度
#params_AI4ST.CurrentDigitalvalue := PEEK_WORD(area := 16#81, dbNumber := 0, byteOffset := #AI_rdaddr.piadder);
//将中间变量赋值给QW,POKE根据Value的地址长度赋值(程序内部应该判断了TypeOf(#Value)来指定长度)
POKE(area := 16#82,
      dbNumber := 0,
      byteOffset := #AQ_rdaddr.pqadder,
      value := #params_AQ2ST.CurrentDigitalvalue);
  1. 序列化和反序列化
//序列化,结构变BYTE或者CHAR数组(不能是其他类型)
#ser1 := Serialize(SRC_VARIABLE := "_ralrm".ra.out.status, DEST_ARRAY => "_ralrm".status, POS := #dpos);
//反序列化,ARRAY [*] of BYTE 或者 CHAR 变成结构
#deser1 := Deserialize(SRC_ARRAY := "_ralrm".ra.out.ti, DEST_VARIABLE => "_ralrm".ti_buffer, POS := #dpos_1
  1. 设备状态,网络禁用指令
REGION get device status 
    //st1
    //use or disable IO device
    //mode=0:find device status
    //mode=1:use mode=2:disable
    "_GlobleDB_Manual".State.D_ACT.hw_device := 262;
    "_GlobleDB_Manual".State.D_ACT.TmpWord := D_ACT_DP(REQ := "_GlobleDB_Manual".State.D_ACT.req, MODE := "_GlobleDB_Manual".State.D_ACT.mode, LADDR := "_GlobleDB_Manual".State.D_ACT.hw_device, BUSY => "_GlobleDB_Manual".State.D_ACT.busy);
    
    //st2
    //device status
    //mode=2,IO/DP error
    //state: device number in condfiguration view
    //258: all the status in system.
    "_GlobleDB_Manual".State.Device.io_sys := 258;
    "_GlobleDB_Manual".State.Device.mode := 2;
    "_GlobleDB_Manual".State.Device.TmpWord := DeviceStates(LADDR := "_GlobleDB_Manual".State.Device.io_sys, MODE := "_GlobleDB_Manual".State.Device.mode, STATE := "_GlobleDB_Manual".State.Device.state);
    
    //st3
    //module status
    //mode=2 module error
    "_GlobleDB_Manual".State.Module.TmpWord := ModuleStates(LADDR := "_GlobleDB_Manual".State.Module.io_device, MODE := "_GlobleDB_Manual".State.Module.mode, STATE := "_GlobleDB_Manual".State.Module.state);
    
    //st4
    //io_pn status 
END_REGION
  1. 模拟量缩放和取消缩放
//OUT = [((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM
//Current channel,十进制数变模拟量
#ScalePara1.HI_LIM := 20.0;
#ScalePara1.LO_LIM := -20.0;
#ScalePara1.BIP := 1;
#tempScaleInt := SCALE(IN := "AIchannel1", HI_LIM := #ScalePara1.HI_LIM, LO_LIM := #ScalePara1.LO_LIM, BIPOLAR := #ScalePara1.BIP, OUT => "TEST_DB".AImodule.channel1);

//UNSCALE,模拟量转换成十进制数
#tempUNScaleWord := UNSCALE(IN := #repeataccur.ana_value, HI_LIM := 10.0, LO_LIM := -10.0, BIPOLAR := 1, OUT => #repeataccur.di_value);
  1. 组合序列和序列解析
//SCATTER,解析
SCATTER(IN := #SourceWord,
OUT => #DestinationArray);

//GATHER,组合
GATHER(IN := #SourceArray,
OUT => #DestinationWord);

  1. 交换
// 观察输出bit交换规律
"Tag_Result" := SWAP("Tag_Value");

>>> Tag_Value:0000 1111 0101 0101
>>> Tag_Result:0101 0101 0000 1111
 

标签:rdaddr,LIM,GlobleDB,提高,Manual,State,指令,mode,自动化
From: https://www.cnblogs.com/xiacuncun/p/18145456

相关文章

  • 运维自动化之账单系统
    费用分摊计算是个十分复杂的工作,尤其是在多云的环境下,尤其是公司严谨需要按项目分摊成本的情况下,尤其是一个项目还分布在不同云厂商不同云账户的场景下,尤其是云厂商toB的业务模式还会有超级复杂的资源折扣加持下,想要把帐算清楚难度巨大我们每个月都需要计算项目成本,每到这个时候......
  • [转]AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署
    一.前言                          (Jenkins、Docker、Git/Svn组建一套简单的自动化发布流程) 文章中用到的相关服务器角色角色环境功能开发机Win10、Docker(LinuxOS)编码、调试发布机(与开发机共享)Win10......
  • 轻松实现自动化文件传输——利用expect脚本进行SCP拷贝
    轻松实现自动化文件传输——利用expect脚本进行SCP拷贝原创 脚本家园 脚本家园 2024-04-1906:00 云南 听全文在日常生活和工作中,我们经常需要在不同的服务器或计算机之间传输文件。尤其是系统管理员和开发人员,他们经常需要远程复制文件到其他机器上。这时,我们可以利......
  • 洛谷题单指南-动态规划1-P2196 [NOIP1996 提高组] 挖地雷
    原题链接:https://www.luogu.com.cn/problem/P2196题意解读:求一条路径,使得所有点地雷数之和最大。解题思路:1、DFS先建图,再从1~n点分别进行一次DFS,记录过程中地雷总数最大的,并且同时记录遍历的顺序。数据量不大,直接就可以过。100分代码:#include<bits/stdc++.h>usingnamespa......
  • gaussdb通过编写shell脚本自动化执行查询和结果收集
    转:https://support.huaweicloud.com/pwp-dws/dws_13_00033.html1、登录ECS,进入到/opt目录下,使用vim命令生成query.conf和run_query.sh两个脚本文件。脚本内容如下,编辑后按:wq!保存脚本配置:run_query.sh脚本如下:#!/bin/bashscript_path=$(cd`dirname$0`;pwd)query_mode=$1......
  • 在博客园平台为博客自动化添加目录
    一、效果预览二、操作方法在设置-页脚HTML代码中添加如下代码:<scriptlanguage="javascript"type="text/javascript">//生成目录索引列表//ref:http://www.cnblogs.com/wangqiguo/p/4355032.html//modifiedby:zzqfunctionGenerateContentList(){varmainC......
  • Python-自动化秘籍(一)
    Python自动化秘籍(一)原文:zh.annas-archive.org/md5/de38d8b70825b858336fa5194110e245译者:飞龙协议:CCBY-NC-SA4.0前言我们都可能花费时间进行一些不太有价值的小手动任务。可能是在信息来源中搜索相关信息的小片段,使用电子表格一遍又一遍生成相同的图表,或者逐个搜索文件......
  • Python-自动化秘籍(二)
    Python自动化秘籍(二)原文:zh.annas-archive.org/md5/de38d8b70825b858336fa5194110e245译者:飞龙协议:CCBY-NC-SA4.0第三章:构建您的第一个Web抓取应用程序在本章中,我们将涵盖以下内容:下载网页解析HTML爬取网络订阅源访问WebAPI与表单交互使用Sel......
  • 面试官:来说说vue3是怎么处理内置的v-for、v-model等指令?
    前言最近有粉丝找到我,说被面试官给问懵了。粉丝:面试官上来就问“一个vue文件是如何渲染成浏览器上面的真实DOM?”,当时还挺窃喜这题真简单。就简单说了一下先是编译成render函数、然后根据render函数生成虚拟DOM,最后就是根据虚拟DOM生成真实DOM。按照正常套路面试官接着会问vue......
  • 『手撕Vue-CLI』自定义指令
    前言最近一直忙于工作项目上面的事情,精力少了很多,所以一直没更文,很多技术点,都做在我自己的Notion笔记库中,今天,我决定要改变一下方式,所以又重新来更文了。在前面的章节中已经分享了VueRouter,实现了VueRouter之后,到此为止,Vue,Vuex,VueRouter就都已经搞定了。到这里,大家应该......