倍福TwinCAT3-如何实现XML文件的读写
安装XML的服务
到倍福的官方网站上下载xml的服务程序【TF6421-XML-Server.exe 】,并在控制内安装。
XML服务程序
添加XML的授权
新建TwinCAT3的项目,并在授权中添加TF6421的XML授权,如下图所示:
添加XML的授权
授权激活后,会出现在当前的项目中,如下图所示:
添加XML的库文件
右击【References】按钮选择【Add Library..】按钮,如下图所示:
添加外部库文件
在弹出的添加库文件对话框中选择xml的库文件,如下图所示:
添加库文件对话框
选择库文件【TC2_XmlDataSrv】,也可以在上面的搜索框里直接输入对应的关键字,这样更快速找到想要的库文件,选择的库文件如下图所示:
XML库文件选择
保存数据到XML
一、定义要保存到xml文件的数据
数据的定义,为了方便管理,一般定义成数组,结构体或结构体数组,如下所示:
数据定义:
aTest : ARRAY[1..50] OF LREAL;
结构体:
结构体的定义
结构体的实例化:
结构体的实例化
结构体数组的定义:
结构体数据的定义
二、 定义XML保存的功能块
功能块的定义:fbXmlSrvWrite : FB_XmlSrvWrite;
定义xml保存文件的功能块
三、 引用功能块,并给功能块接口赋值
功能块的赋值,如下图所示:
功能块的赋值
需要注意:
接口【pSymAddr】 和【cbSymSize】 分别用来指定要保存数据的地址和保存数据的大小,可以用获取地址的【ADR】 和获取数据大小的【SizeOf】 来实现;
指定的变量,不仅仅可以是独立的变量,也可以是数组、结构体或结构体数组来指定。这样更方便管理;
接口【sFilePath 】用来指定xml文件保存的路径和文件名的,也就是文件保存的地址;
接口【sXPath】 用来指定数据保存在XML的节点信息。
接口【bExecute 】用来触发功能块的实现。
执行成功后,文件结构说明
如下图所示:
xml文件结构
功能块指定的节点来保存数据,对于复杂的数据类型,则会把内部的元素存储为指定节点的子节点来存储,结构明确,可读性强。
从XML读取数据到PLC
xml文件的读取和写入基本类似,只不过实现的是xml文件读取的功能块【FB_XmlSrvRead 】,这里就不在赘述。
读取XML文件并赋值到PLC变量
一种提高PLC数据采集效率的方法
1. 采用缓冲区减少读写次数
利用PLC中的程序,将地址分散的开关量I/O、模拟量I/O和控制参数(存储器中的数据)集中到读缓冲区和写缓冲区:读缓冲区为上位机从PLC中读取的数据;写缓冲为上位机写入PLC的数据。在缓冲区中,开关量占据1个位,模拟量占据2个字节,其他数据根据需求可占据位、字节、字或双字,如下表:
缓冲区的位置和大小由起始地址和字节数量决定,上位机一次性读取或写入整个缓冲区的数据,提高通信效率。上位机读取1个字节数组,根据实际情况解析相应的数据;上位机程序将输出的具体数据打包为1个字节数组,一次性地写入PLC写缓冲区。
在PLC中编写程序将采集的数据点传送到读缓冲区中,并从写缓冲区将数据传送到相应的I/O端口,实现与外部设备的交互。
2. 数据采集流程
首先从PLC中读取数据并写入读取数据的字节数组,然后将写入数据的字节数组写入到PLC中;一次写入完成后程序休眠指定的时间,然后重新开始新的读写流程:循环执行,直到退出程序,流程如下:
为保证PC机与PLC设备间网络连接的可靠性,采用有限状态机持续监控PC-PLC连接状态,当出现连接错误时自动尝试重新连接,直到连接成功。
3 提高设计效率的方法
针对规划好的数据采集系统及每个PLC缓冲区,设计XML格式配置文件,描述系统中每个PLC及数据缓冲区信息。采集程序启动时读取配置文件,获取所要采集的PLC及其数据点信息,作为数据采集的目标。
为形成XML配置文件,设计PLC 参数表和数据参数表。上位机PC的通信程序根据参数配置表迅速准确连接到目标PLC,同时通信程序准确读取和写入对应PLC的数据。
4 配置文件的编辑工具
Excel格式参数文件与XML 格式配置文件相互转换;根据采集需要添加或者删除PLC,更新目标PLC参数信息;根据采集需要添加或者删除需要读写的I/O点信息。
转发是最大的鼓励!谢谢您的支持!
小贴士
PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!
免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!
如何获取更多 电气热门资料?
操作指引如下!
相关问答
软件开发方向)是什么意思?
有很多方向,下面给你列几个常见的:1.桌面程序:Java、C++、C#、VB、C均可。2.网站服务器端开发:JSP(Java语法)、PHP、ASP(C#语法)、WebApp框架等3.网站客户...
开发软件要什么工具?
软件开发工具包括基础开发工具和快速开发工具,基础开发工具是代码级开发,快速开发工具则是将一些通用功能封装成中间件直接调用,通过配置、组装方式实现软件快...
如何把android手机所有信息同步到iphone11-ZOL问答
8.在安卓上安装SMSBackup&Restore,打开点击"恢复",选择iphone.xml,按提示来...西门子plc编程软件step75.5有几个版本515...
OPC协议指的是什么?
OPC协议(OLEforProcessControl)是一种分布式计算机控制系统中用于数据交换的标准化接口。它是一个开放的标准,它允许PLC(可编程逻辑控制器)、DCS(分布式...
什么叫项目背景?项目简介?项目团队介绍?项目方诉求?项目...
[回答]国领先水平,全套的运营服务体系,为客...加盟之后,您可以完全放心:您需要做的事情,在加盟签约后,小优快工有专业的运营团队进行全程指导扶持,手把手...
win10自带输入法在lol里打字没边框怎么处理-ZOL问答
2、在打开的文件夹中找到:IMEConfig.xml,单击右键,选择“编辑”;3、在打开的...plc能通过一个按钮控制电源开关吗?按一次开,再按一次关,请教好心人,谢谢!417...
大仙们我想知道!!娄底软件编程学校收费,软件编程学校xxx怎...
[回答]最初的程序是无数个程序员一个字母一个字母打出来的,计算机语言也是人给它设计的,所以说你学会了计算机语言才能和计算机沟通。至于你说的没有编程...
为什么现在很多人都去学JAVA,而不学C语言了呢?
我个人理解,主要是如下几个原因市场需求差异。行业差异,C语言主要是三个应用方向做windows系统应用开发,但目前随着需求很少,嵌入式开发需求旺盛,除了电...
哪位大侠!有人知道吗 绵阳DCS系统集成收费标准,DCS系统集...
[回答]向下与DCS、PLC、SCADA等过程控制系统集成;向上系统具有统一平台,与ERP、CRM和SCM等应用系统集成,功能模块可根据客户需要灵活配置、扩充;对外系统...
扫一扫微信交流