首页 > 编程语言 >PLC程序中的配方应用

PLC程序中的配方应用

时间:2024-04-30 23:34:17浏览次数:22  
标签:DBL animinal DB req 程序 PLC statExRecipe 配方 button

  1. 建立ARRAYDB
  • 集合配方需要的所有元素结构,组成一个UDT(包含范围最全)
  • 新建一组ARRAY DB,元素的个数就是配方需要的副本的个数
  • 数组DB勾选仅存储在装载内存中,以便数据量大的配方不占用数据工作存储器空间,节省资源
  • 在ARRAY DB的起始值处填写配方的具体值
  • 1200不支持ARRAY DB,所以用普通全局DB替代也可
  1. 配方表的导入导出
  • 导入
//export
#statExRecipe.req := #H_animinal.start_export_button;
#RecipeExport_Instance(REQ := #statExRecipe.req,
                       DONE => #statExRecipe.done,
                       BUSY => #statExRecipe.busy,
                       ERROR => #statExRecipe.error,
                       STATUS => #statExRecipe.status,
                       RECIPE_DB := "Product_Recipe");
  • 导出
//import
#statImRecipe.req := #H_animinal.start_import_button;
#RecipeImport_Instance(REQ:=#statImRecipe.req,
                       DONE=>#statImRecipe.done,
                       BUSY=>#statImRecipe.busy,
                       ERROR=>#statImRecipe.error,
                       STATUS=>#statImRecipe.status,
                       RECIPE_DB:="Product_Recipe");
  • 导入导出位置
  1. DBL的读出和写入
  • 从DBL读出到程序中使用,靠index索引,靠req使能,statReturnRDDBL=16#7002时表示读出完成
  • read_DBL本身是异步指令,整个过程会横跨多个扫描周期,另外因为是从存储卡读取而来,读取速度上不是很快
  • DBL因为使能了仅存储在装载内存中,故不能在线,它只有起始值,没有在线值。
  • 写入同理
//read_DBL
#statReadDBL.req := #H_animinal.start_readDBL_button;
#statReturnRDDBL:=READ_DBL(REQ := #statReadDBL.req, SRCBLK :="Product_Recipe"."THIS"[#H_animinal.recipe_index] , BUSY => #statReadDBL.busy, DSTBLK => #H_current_params);
IF 16#7002 = #statReturnRDDBL THEN
    #H_animinal.start_readDBL_button := FALSE;
END_IF;

//write DBL
#statWriteDBL.req := #H_animinal.start_writeDBL_button;
#statReturnWRDBL := WRIT_DBL(REQ := #statWriteDBL.req, SRCBLK :=#H_current_params, BUSY => #statWriteDBL.busy, DSTBLK => "Product_Recipe"."THIS"[#H_animinal.recipe_index]);
IF 16#7002 = #statReturnWRDBL THEN
    #H_animinal.start_writeDBL_button := FALSE;
END_IF;

标签:DBL,animinal,DB,req,程序,PLC,statExRecipe,配方,button
From: https://www.cnblogs.com/xiacuncun/p/18159283

相关文章

  • uni-app 微信小程序之红包雨活动
    直接上代码<!--红包雨活动--><template> <scroll-viewscroll-y="true"> <viewclass="red-envelope-rain"> <viewv-for="(redEnvelope,index)inredEnvelopes":key="index"class="red-envelop......
  • 利用PLC扫描周期实现一些小技巧
    上升沿//pulsegenerateIF#my_singalANDNOT#pulse_boolTHEN;END_IF;#pulse_bool:=#my_singal;数值记忆,记录当数值变化时事件//memory,my_order由外部主动触发IF#my_order<>#memory_orderTHEN;END_IF;#memory_order:=#my_order;清数据之......
  • 怎么给程序员定 KPI ?原则和最佳KPI
    研究表明,相较于传统办公室环境,远程工作团队的效率更高。这引出了一个问题:远程软件工程师的效率提升到了什么程度?想要了解远程工作如何影响团队表现的管理人员可能会设定一些关键绩效指标。但是,并不是所有的KPI都适用:像代码行数、工作时间和修复的错误这类数据可能会误导对生产......
  • CentOS7安装NVIDIA GPU驱动程序和CUDA工具包
      1.查看本地环境检查GPU型号lspci|grep-invidia查看linux系统版本uname-m&&cat/etc/redhat-release禁用nouveaulsmod|grepnouveau#打开如下文件sudovim/usr/lib/modprobe.d/dist-blacklist.conf#写入以下内容blacklistnouveauoptionsnouveaumodes......
  • 程序员冷知识
    假设你是个妹子,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时可以甩了现任男友,另外一位马上就能补上。这是冷备份。假设你是个妹子,同时和两位男性在交往,两位都是你男朋友。并且他们还互不干涉,独立运行。这就是双机热备份。假设你是个妹子,不......
  • Linux 下以其他用户身份运行程序—— su、sudo、runuser
    转自:https://blog.csdn.net/u011250186/article/details/106335028/本文综合分析了Linux系统下,如何使用runuser命令、su命令和sudo命令以其他用户身份来运行程序,以及这三个命令的运行效率比较。 一、su命令临时切换用户身份SU:(Switchuser切换用户),可让一个普通用户切换为......
  • 【小程序逆向专栏】某润选房小程序逆向分析
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • 微信小程序无法登录
    运营反馈用户登录不上微信小程序,提示错误:“获取不到手机号”。研发接到反馈后根据错误信息,查询日志,发现是调用“微信接口获取手机号接口”异常,没有返回手机号。排查问题:1、“微信接口获取手机号接口”需要两个参数,一个是前端微信小程序返回的code,一个是服务端的access_token。......
  • 中国程序员主要使用哪些技术网站
    CSDN(ChinaSoftwareDeveloperNetwork):中国最大的IT社区和服务平台,提供了丰富的文章、博客、论坛和开发者服务。掘金:一个帮助开发者成长的社区,用户可以在这里找到高质量的技术文章、教程和项目案例。博客园:一个面向开发者的知识分享社区,主要提供博客服务,内容覆盖各种编程......
  • Profinet转Modbus网关接称重设备与1200PLC通讯
     Profinet转Modbus网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。Profinet转Modbus网关可提供单个或多个RS485接口,使用Profinet转Modbus网关将称重设备与西门子1200PLC进行通讯,可以避免繁琐的编程和配置过程,节省了工程师的时间和精力。其次,它提供了灵......