<PLC><威纶通>威纶通触摸与信捷PLC通讯,使用脚本根据页面自动切换模式

news2024/9/22 11:37:27

前言
本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。

PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。

除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如果有值得记录的内容,也会添加进来。

环境配置
系统:windows
软件:PLC编程软件(依品牌而定,如博图)
语言:梯形图、STL、C、js(脚本用)等
库:相应PLC指令库、通用脚本

本篇内容
本篇主要介绍威纶通的HMI与信捷PLC进行通讯,以及威纶通HMI如何使用脚本来自动在页面之间切换模式。

相关博客链接
1、<工控><PLC>汇川IT7070E触摸屏如何实现单一画面多元素共存显示?
2、<PLC>汇川IT7070E触摸屏如何使用脚本实现画面跳转时自动切换手自动模式?

触摸屏型号: 威纶通 TK8071iP
PLC型号: 信捷 XL3-32

触摸屏与PLC通讯

由于XL3-32不支持以太网,所以,TK8071iP与之通讯,可以使用485串口通讯。

触摸屏设置

使用威纶通的HMI编程软件,新建一个项目,型号选择为TK8071iP。
在打开的项目中,在软件上方的菜单栏选择常用----系统参数在这里插入图片描述
弹出设置窗口:
在这里插入图片描述
在这个窗口,点击新增设备/服务器,在弹出的窗口中,设备类型选择XINJIE XD Series,接口类型选择RS-485 2W,在下面的COM设置中设置串口参数:
在这里插入图片描述
根据信捷的官方要求,COM口的波特率最好设为38400,后面PLC端也要设置一样。

设置完成后,可以在新建画面上添加PLC变量。我们这里以一个简单的按钮盒指示灯来举例。
在HMI编辑软件的上方菜单中,选择元件,然后分别点击位状态切换开关位状态指示灯两类元件,添加到画面上:
在这里插入图片描述
在添加时,会要求设置变量,如下:
在这里插入图片描述
图片中,1所指要选择设备类型是PLC还是本地,我们选择刚才新建的设备类型。地址则根据信捷PLC的手册来设置,但威纶通触摸屏本身兼容信捷的变量,比如M点,就直接选择M,然后填入M点的编号即可,如M0。
对于位开关,还需要设置其触发模式,比如按下按钮后,是置ON还是置OFF还是切换,还是复归。
而威纶通的触摸屏还支持宏指令,即脚本,也就是说按钮在触发过程,可以激活脚本,由此可以实现一些复杂的功能。而且是依托于HMI本身,而不需要PLC的参与。

上面是以按钮部件来举例,其他部件的添加以此类推。

PLC设置

在信捷PLC端,我们需要配置一下串口,打开信捷的PLC编程软件,可以在左侧的菜单导航栏选择PLC配置,然后点击PLC串口,会弹出设置窗口,也可以在软件上方的菜单栏中选择,是一样的。
在这里插入图片描述
在弹出的窗口中,点击添加按钮,选择Modbus通讯,软件会自动创建一个串口号,然后,在右侧的通讯参数设置里,设置相应的串口参数,串口号保持一致,波特率设为38400,其他参数要和触摸屏端保持一致。
万抽,点击写入PLC,然后确定即可。

脚本设置

我们可以利用威纶通HMI提供的宏指令功能,来编写相应的宏指令,即脚本,来实现一些额外的功能。
比如,现在我想根据当前切换的页面编号,来判断是否启用自动或者手动模式,其中,页面要手动还是自动,是提前设定好的,比如我有一些页面是自动运行,那么如果检测到这些页面编号,就直接切换为自动,同理检测到手动页面编号,就切换为手动。

这里为了方便使用,我们会编写三个脚本,一个是用来获取页面编号的,另外两个就是分别设置自动和手动。

在威纶通的触摸屏编辑软件中,选择工程文件菜单,然后点击宏指令:
在这里插入图片描述
在弹出的宏指令管理窗口中,点击新增:
在这里插入图片描述
就会弹出一个宏指令编辑窗口:
在这里插入图片描述
宏指令函数的编写,类似C语言,如果不知道如何使用指令,可以点击编辑器底部的函数按钮,会弹出一个介绍窗口,可以查看所有的内建函数如何使用。

下面是我编写的页面判断程序,非常简单:

macro_command main()
//定义临时变量
bool on=true,off=false
int view_number=0

//获取当前画面号
GetData(view_number, "Local HMI", LW, 9050, 1)

//通过画面号判断当前页面是自动操作页面还是手动操作页面
if (view_number == 1 or view_number == 110) then

SetData(on, "Local HMI", LB, 21, 1)

else if (view_number == 120 ) then

SetData(on, "Local HMI", LB, 20, 1)

else

SetData(off, "Local HMI", LB, 21, 1)
SetData(off, "Local HMI", LB, 20, 1)

end if
//复位触发变量
SetData(off, "Local HMI", LB, 30, 1)

end macro_command

基本上也不用解释了,说明一下,其中的变量LB20和LB21是用来触发自动和手动模式的设置脚本的。

切换手动:

macro_command main() 

bool on=true,off=false

SetData(off, "XINJE XD Series", M, 2000, 1)
SetData(on, "XINJE XD Series", M, 2005, 1)
SetData(on, "XINJE XD Series", M, 2001, 1)
SetData(off, "XINJE XD Series", M, 2001, 1)
SetData(off, "Local HMI", LB, 20, 1)


end macro_command

如上,是对PLC的变量进行设置,非常简单,就是对bool量变量进行置位和复位。

切换自动:

macro_command main()       

bool on=true,off=false

SetData(off, "XINJE XD Series", M, 2001, 1)
SetData(on, "XINJE XD Series", M, 2006, 1)
SetData(on, "XINJE XD Series", M, 2000, 1)
SetData(off, "XINJE XD Series", M, 2000, 1)
SetData(off, "Local HMI", LB, 21, 1)

end macro_command

然后说一下,LB20和LB21如何触发自动和手动的脚本,在软件的菜单中选择元件----PLC控制
在这里插入图片描述
在弹出的窗口中,点击新增:
在这里插入图片描述
如下:
在这里插入图片描述
可以在此窗口设置如何触发宏指令,设备类型可以选本地,因为我们可以直接使用HMI提供的本地变量来作触发,这样就不要浪费PLC的地址。
控制类型有多个选项,我们选择执行宏指令,然后在下面的子选项中选择要执行哪个宏指令,此处可选的,是你创建的全部宏指令(编译通过)。触发变量自己填写,只要不重复即可。

底下的触发模式,表示变量如何触发:
在这里插入图片描述
举例来说,如果你的变量是LB20,你选择了OFF—>ON触发模式,那么当变量LB20由off变为on时,就会触发这个宏指令,反之,如果你选择了ON—>OFF触发,表示变量LB20在ON变为OFF的瞬间触发宏指令,而OFF<—>ON表示,无论LB20是由OFF变为ON的瞬间还是ON变为OFF的瞬间,都会触发宏指令的执行。而当状态位ON时即执行表示LB为ON时,会一直触发宏指令,但一旦变为OFF就不会执行。

综上,我们来看一下我们在页面切换时自动切换模式的实现:
我有一个页面跳转按钮,跳转到的页面需要自动模式,那么,我会设置当前按钮在触发页面跳转时,同时设置一个变量:
在这里插入图片描述
如上图,我要跳转的主页面需要自动模式,我在跳转时,置位了一个变量LB30.
然后我在PLC控制里设置LB30会触发宏指令:
在这里插入图片描述
可以看到,当LB30为ON时,会执行宏指令判断当前页面是自动还是手动,在这个宏指令中,如果检测到页面编号为110,则会置位变量LB21,否则会置位LB20.
而我们为LB20、LB21分别设置的PLC控制如下:
在这里插入图片描述
其中,LB20为ON时,触发手动切换。
LB21为ON时,触发自动切换。
在每个宏指令的内部,触发位会被复位,不会让当前宏指令一直执行。

以上就是使用威纶通的宏指令实现根据页面切换模式的一种方式,但这只是个人的经验,如果你有更好的方式,欢迎私信交流。

如果你对PLC或者HMI编程有任何问题,也可以私信沟通。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1915975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字人+展厅互动体验方案:多元化互动方式,拓宽文化文娱新体验

数字化创新已成为推动展厅可持续发展&#xff0c;创造全新消费体验&#xff0c;满足游客多元化需求的关键力量。 “数字人数字互动展厅”可以适应年轻一代的文化传播与多媒体互动新体验趋势&#xff0c;打造新生代潮玩聚集地&#xff0c;促进文化创意传播与互动体验场景创新&a…

JMH325【剑侠情缘3】第2版80级橙武网游单机更稳定亲测视频安装教学更新整合收集各类修改教学补丁兴趣可以慢慢探索

资源介绍&#xff1a; 是否需要虚拟机&#xff1a;是 文件大小&#xff1a;压缩包约14G 支持系统&#xff1a;win10、win11 硬件需求&#xff1a;运行内存8G 4核及以上CPU独立显卡 下载方式&#xff1a;百度网盘 任务修复&#xff1a; 1&#xff0c;掌门任务&#xff08…

海南云亿商务咨询有限公司抖音电商服务领军者

在当今这个数字化高速发展的时代&#xff0c;抖音电商已经成为了一种不可忽视的新型商业模式。作为行业的佼佼者&#xff0c;海南云亿商务咨询有限公司凭借其专业团队和卓越的服务能力&#xff0c;为众多商家提供了一站式的抖音电商解决方案&#xff0c;助力商家在竞争激烈的市…

【C++之·C++11·lambda函数】

系列文章目录 文章目录 前言一、概述1.1 lambda函数简介1.1.1 为什么使用lambda函数&#xff1f;1.1.2 引入lambda的目的 二、实例演示总结 前言 一、概述 1.1 lambda函数简介 名称lambda来自lambda calculus(lambda演算)&#xff0c;一种定义和应用函数的数学系统。这个系统中…

零基础STM32单片机编程入门(十二) HC-SR04超声波模块测距实战含源码

文章目录 一.概要二.HC-SR04主要参数1.模块引脚定义2.模块电气参数3.模块通讯时序4.模块原理图 三.STM32单片机超声波模块测距实验四.CubeMX工程源代码下载五.小结 一.概要 HC-SR04超声波模块常用于机器人避障、物体测距、液位检测、公共安防、停车场检测等场所。HC-SR04超声波…

MIT机器人运动控制原理浅析-人形机器人

MIT人形机器人基于开发改进的执行器全新设计&#xff0c;通过可感知执行器运动动力学移动规划器(Actuator-Aware Kino-Dynamic Motion Planner)及着地控制器(Landing Controller)等实现机器人的运动控制。 机器人设计 机器人高0.7米&#xff0c;21KG(四肢重量 25%)&#xff0c;…

ROM修改进阶教程------深度解析小米设备锁机型不解锁bl 刷写特殊类固件的步骤

在玩机过程中会遇到很多自己机型忘记密码或者手机号不用导致机型出现账号锁。无法正常使用。那么此类机型如果无法正常售后解锁。只能通过第三方渠道。例如在早期小米机型有强解bl锁资源。然后刷入完美解锁包。这种可以登陆新账号。但后期新机型只能通过修改分区来屏蔽原设备锁…

案例开发-日程管理-第一期

九 案例开发-日程管理-第一期 共7期 9.1 登录页及校验 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.ht{text-align: center;color: cadetblue;font-family: 幼…

【Docker-compose】搭建php 环境

文章目录 Docker-compose容器编排1. 是什么2. 能干嘛3. 去哪下4. Compose 核心概念5. 实战 &#xff1a;linux 配置dns 服务器&#xff0c;搭建lemp环境&#xff08;Nginx MySQL (MariaDB) PHP &#xff09;要求6. 配置dns解析配置 lemp Docker-compose容器编排 1. 是什么 …

前端如何去看蓝湖

首先加入团队&#xff0c;在内容中我们可以看到点击图片&#xff0c;右边出现的图 包含了像素甚至有代码&#xff0c;我们可以参考这个代码。 那么在使用之前我们需要调整好像素&#xff0c;例如我们的像素宽为375&#xff0c;不用去管高&#xff0c;然后这个宽度我们可以去自…

MySql性能调优01-[数据结构和索引]

数据结构和索引 什么是索引索引的种类常见索引数据结构和区别二叉树 红黑树 什么是索引 索引的种类 在Mysql中索引是在存储引擎层实现的&#xff0c;而不是在服务层实现的 按数据结构分&#xff1a;Btree索引、Hash索引、Full-text索引按存储结构分&#xff1a;聚簇索引、非聚…

快手kolors模型测评和安装完整教程(支持中文提示词、文字绘制 )

在人工智能领域&#xff0c;文本到图像合成技术一直是研究的热点。Kolors项目以其卓越的性能和创新的技术&#xff0c;正在重新定义这一领域的可能性。本文将深入探讨Kolors项目的核心优势、技术细节以及如何快速开始使用这一强大的模型。 随着深度学习技术的飞速发展&#xf…

最新 Kubernetes 集群部署 + flannel 网络插件(保姆级教程,最新 K8S 版本)

资源列表 操作系统配置主机名IP所需插件CentOS 7.92C4Gk8s-master192.168.60.143flannel-cni-plugin、flannel、coredns、etcd、kube-apiserver、kube-controller-manager、kube-proxy、 kube-scheduler 、containerd、pause 、crictlCentOS 7.92C4Gk8s-node01192.168.60.144f…

新一代iPhone成传家宝,这升级给我看呆了

6 月刚过&#xff0c;数码圈就迎来了平淡期&#xff0c;虽然各家手机层出不穷&#xff0c;但也只是新瓶装旧酒&#xff0c;没啥新意。 翘首以盼的新机也得等到 9 月份才会遍地开花。 这其中让人备受期待的肯定有苹果的一票&#xff0c;而最近苹果新机的消息也渐渐浮出水面了。…

IEC62056标准体系简介-4.IEC62056-53 COSEM应用层

为在通信介质中传输COSEM对象模型&#xff0c;IEC62056参照OSI参考模型&#xff0c;制定了简化的三层通信模型&#xff0c;包括应用层、数据链路层&#xff08;或中间协议层&#xff09;和物理层&#xff0c;如图6所示。COSEM应用层完成对COSEM对象的属性和方法的访问&#xff…

Mysql如何高效ALTER TABL

ALTER TABLE 缺点 MySQL 的ALTER TABLE 操作的性能对大表来说是个大问题。 MySQL MySQL 执行大部分修改表结构操作的方法是用新结构的 创建一个&#xff0c;空表从旧表中查出所有数据插入&#xff0c;新表然后删除旧。表这样操作可能需要花费很长&#xff0c;时间 如内果存不…

【LeYOLO】嵌入式和移动端的轻量级YOLO模型

代码地址&#xff1a;https://github.com/LilianHollard/LeYOLO 论文地址&#xff1a;https://arxiv.org/pdf/2406.14239 在深度神经网络中&#xff0c;计算效率对于目标检测至关重要&#xff0c;尤其是在新模型更注重速度而非有效计算&#xff08;FLOP&#xff09;的情况下。这…

【算法入门-栈】逆波兰表达式求值

&#x1f4d6;逆波兰表达式求值 ✅描述✅扩展&#xff1a;什么是逆波兰表达式✅题解方法一&#xff1a;栈✅题解方法二&#xff08;数组模拟栈&#xff09; 今天又刷了一道题&#xff0c;奥利给 刷题地址&#xff1a; 点击跳转 ✅描述 给定一个逆波兰表达式&#xff0c;求表达…

anaconda修改安装的默认环境

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️如遇文章付费&#xff0c;可先看…

简述设计模式-策略模式

概述 在策略模式中一个类的行为或者算法可以在运行时更改&#xff0c;这种类型的设计模式属于行为型模式。 在策略模式中定义了一系列的算法和策略&#xff0c;并将每个算法封装在独立的类中&#xff0c;使得他们能够互相替换&#xff0c;通过使用策略模式可以在运行时选择不…