labview与三菱PLC通讯研究

2023-11-14

 
labview 与三菱 PLC 通讯研究
一 介绍Labview
Labvie是实验室虚拟仪器工程工作台(Labview Virtual Instruments Engineering Workbench)的简称,是美国国家仪器公司开发的虚拟仪器开发平台软件,它的功能强大灵活,可以广泛应用于自动测量系统、工业过程自动化、实验室仿真等各个领域。
Labview使用图形化编程语言编程,简单直观,极大节省程序开发时间,同时Labview可提供丰富的库函数和功能模块,可完成各种各样的复杂编程任务。
 
二 三菱PLC的通讯协议
 
   三菱plc通过通讯模块(主要是485)实现计算机与PLC进行通讯,从而实现远程控制与管理,本文主要介绍三菱FX-2N的通讯规约情况.具体的通讯协议可以参阅技术说明书,本文将大略的讲述通讯规则.
 
To read the present value of two points,T123 and T124,at station No.5
   
 
E
N
Q
05H
0 5
 
 
30H,35H
F F
 
 
46H,46H
W R
 
 
57H,52H
 
 
00H
T N 123
 
 
54H,4EH,31H,32H,33H
02
 
 
00H,32H
64
 
 
36H,34H
 
 
根据读取协议,可以看出,读取地址的规约如上:
读取:
   前导字符 ENQ
   05:站号
FF,WR,0:读取的规约
   T123:开始读取地址
   02,读取地址长度,如果只读取T123,那么为01;如果依次读取三个地址那么为03,则读取地址为T123,T124,T125;文中为02,那么读取地址为T123,T124
   64:累加和(注意,本累加和不包括 ENQ)
 
To back
S
T
X
02h
05
 
 
30H,35H
FF
 
 
46H,46H
7BC9
 
 
37H,42H,43H,39H
1234
 
 
31H,32H,33H,34H
E
T
X
03H
B3
 
 
42H,33H
 
STX:前导字符 02h
05:站号
FF:标记(暂且这么认为)
7BC9,1234:读取地址返回值,T123对应 7BC9,T124对应1234
ETX:标记
B3:累加和(同理,不包括STX)
 
 
To write to data to two points, D0 and D1,at station NO.0(with message wait time set to 0 ms)
 
E
N
Q
05H
00
 
 
30H,30H
FF
 
 
46H,46H
WW
 
 
57H,57H
 
 
30H
D0000
 
 
44H,30H,30H,30H,30
02
 
 
30H,32H
1234
 
 
31H,32H,33H,34H
 
 
ACD7
41hH,43H,44H,37H
 
 
F9
46H,39H
 
 
 
BACK
A
C
K
06H
05
 
 
30H,35H
FF
 
 
46H,46H
 
具体说明 请见 三菱PLC说明书
 
 
三 编程实现
 对于如何实现字符转换成ASCII码这里就不作详细介绍.我们通过高级语言VB和labview进行实现累加和的情况来说明labview实现的简易性.
 
VB 实现
Function CheckSum(ByVal Data As String) As String
    Dim i, k As Integer
    k = 0
    For i = 1 To Len(Data)
       k = k + Asc(Mid$(Data, i, 1))
       k = k And &HFF
    Next i
    CheckSum = Hex$(k)
    If Len(CheckSum) = 1 Then CheckSum = "0" & CheckSum
End Function
 
使用LABVIEW来实现累加和
 
那么Numeric3中就得到累加和,如何进行进制转换呢?
 其实就是  除以16 高位取整,低位取余

使用LV实现如下

转换

 

这样,我们就可以实现通过规约将数据进行表达出来.通过485接口通讯,从而实现写入数据到plc的某个(些连续)地址或者从某个(些连接)地址的数据读取出来.详细的实现方式请参阅我写的另外一篇关于labview实现串口通讯的文章:
 
总结:
 在工业现场环境,我们经常通过接口通讯将PLC和计算机连接起来实现人机交互.从而形成远程控制.实现无人职守的功能.在这个方面,人机界面也做的很好,提供很多的协议,我们只要编制上层程序即可.但是人机界面存在着数据存储量少而且界面不是很友好的弱点,工控机这方面可以实现很好的补充.既能在复杂的工业环境上进行良好的控制,而且提供友好方便查询与处理的操作.实现方便.加上配合美国NI公司的LABVIEW实现具体的功能.稳定性和可靠性将大大提高.
 
 诚然,每种PLC的通讯规约基本都不一样,这里我们介绍了三菱PLC与计算机形成人机交互.起到抛砖引玉的作用!对于各种plc规约不同,那么实现起来将增加编程人员的负担,为此,大家可以参考美国WOODHEAD公司(http://www.woodhead.com),他们提供一款产品,实现不同型号与品牌的PLC进行互连通讯.详细介绍请参阅他们的网站.
 
 
 
参考文献
 三菱plc FX-2N 说明书
 《labview高级程序设计》        杨乐平等编著
  labview 串口通讯的研究      本人另外一篇研究串口通讯的文章

 

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

labview与三菱PLC通讯研究 的相关文章

  • Javascript:stringify对象(包括类型函数的成员)

    我正在寻找一种解决方案来跨浏览器将 Javascript 对象序列化 和反序列化 为字符串 包括恰好是函数的对象成员 一个典型的对象看起来像这样 color red doSomething function arg alert Do som
  • C# vb:S​​ystem.Func 占用多少内存?

    System Func 究竟拥有多少内存 System Func 是 1 行还是 1000 行有什么区别吗 Func是委托类型 一个实例在x86抖动中占用32字节存储 对象头 8 个字节 4 个字节用于 Delegate methodBas
  • 如何避免使用全局变量?

    我使用全局变量 但我读到它们不是一个好的实践或Pythonic 我经常使用的函数会给出许多是 否变量 我需要在主函数中使用这些变量 例如 在不使用全局变量的情况下 如何编写以下代码 def secondary function global
  • 如何在Conky中实现一个基本的Lua功能?

    我正在尝试向我的 Conky 添加一个函数 该函数打印字符串的长度以用于调试目的 代码位于名为的文件内test lua 非常简单 function test word return string len word end 我这样加载它 在我
  • 在 Netlogo 中将函数作为参数传递

    在许多其他编程语言中 您可以将一个函数作为参数传递给另一个函数并从该函数内调用它 无论如何 在 Netlogo 中可以做到这一点吗 比如下面这样 x y z are all ints to report f x y z report x y
  • 在没有事件的情况下从 HTML 执行 javascript 函数

    我希望从 HTML 页面调用 javascript 函数 并且我do not希望它依赖于任何事件 该函数位于单独的 js 文件中 因为我希望在许多网页中使用它 我也将变量传递给它 我试过这个 HTML fp footer2 js中的函数 f
  • 程序如何在Python中的两个函数之间进行选择?

    我有一个 Python 3 2 程序 可以计算未来任意时间段内的投资价值 它可以处理单利和复利 问题是我定义了两个函数 main 和 main2 第一个是简单函数 第二个是复利函数 现在我想做的是 根据用户的一些输入 程序在运行 main
  • python函数返回函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • “对象不是函数” - onclick 事件

    在开始之前 不 我没有发现分号的问题 并且我没有向函数传递任何值 当我尝试从控制台执行函数 login 时 它工作得很好 但是当我单击 HTML 输入按钮来调用它时 我收到 Uncaught TypeError object is not
  • python执行列表和函数列表[重复]

    这个问题在这里已经有答案了 我正在将 Python 2 7 与 Autodesk Maya 结合使用 这是我的问题的一个例子 import maya cmds as m def a passedString print this passe
  • 函数类型有什么用?

    鉴于以下两个typedefs typedef void pftype int typedef void ftype int 我明白第一个定义pftype作为指向一个函数的指针 该函数接受一个int参数并且不返回任何内容 第二个定义ftype
  • 在 r 中的 unique() 函数中使用管道不起作用

    我在使用管道运算符 gt 和 unique 函数时遇到一些麻烦 df data frame a c 1 2 3 1 b a unique df a no problem here df gt unique a not working her
  • 如何获取调用函数的“this”值?

    如果我有一个这样的函数 function foo this console log this function bar bar prototype func function foo this var test new bar test f
  • Javascript 函数指针,以参数作为函数中的参数

    不确定标题的措辞是否正确 或者是否有更好的表达方式 但我认为还可以 无论如何 到目前为止我了解以下内容 a b a b c foo 其中 foo 是在其他地方定义的函数 不接受任何参数 只会导致函数 a b 使用上述参数运行 然后可以在函数
  • 带有 UnboundLocalError 的本地和全局引用

    我不太明白为什么代码 def f print s s foo f 运行得很好但是 def f print s s bar s foo f 给我 UnboundLocalError 我知道我可以通过声明来解决这个问题s作为函数内的全局变量或简
  • swift 中闭包和函数作为参数的区别

    我有将近 4 年的 Objective C 经验 并且是 swift 的新手 我试图从 Objective C 的角度理解 swift 的概念 所以如果我错了 请指导我 在目标 c 中 我们有块 可以稍后异步执行的代码块 这绝对是完全合理的
  • 根据传递的参数覆盖 Javascript 函数

    是否可以根据传递给函数的参数数量来重写函数 例如 function abc name document write My name is name function abc name friend document write My nam
  • GCC的sqrt()编译后如何工作?使用哪种root方法?牛顿-拉夫森?

    只是对标准感到好奇sqrt 来自 GCC 上的 math h 我自己编码的sqrt 使用牛顿拉夫森来做到这一点 是的 我知道 fsqrt 但CPU是如何做到这一点的呢 我无法调试硬件 现代 CPU 中的典型 div sqrt 硬件使用 2
  • 如何创建不返回任何内容的函数

    我想写一个函数pl pgsql 我在用着Postgres 企业管理器 v3并使用 shell 来创建一个函数 但在 shell 中我必须定义返回类型 如果我不定义返回类型 我将无法创建函数 如何创建一个不返回结果的函数 即创建一个新表的函数
  • 使用 MID、LEN 和 FIND 函数提取单元格文本的某些部分?

    我有一份 Excel 作业 但我陷入了最后部分 我被要求使用 MID LEN 和 FIND 来提取单元格内的特定字符串 我非常了解每个人的工作方式 将这三者结合起来并让它们发挥作用是我遇到的问题 我需要将城市与地址的其余部分分开 然后将其显

随机推荐

  • Python实现FA萤火虫优化算法优化支持向量机分类模型(SVC算法)项目实战

    说明 这是一个机器学习实战项目 附带数据 代码 文档 视频讲解 如需数据 代码 文档 视频讲解可以直接到文章最后获取 1 项目背景 萤火虫算法 Fire fly algorithm FA 由剑桥大学Yang于2009年提出 作为最新的群智能
  • 爬虫需要知道的基础

    一 爬虫概述 1 爬虫必须知道的要素 爬虫要遵循网上的爬虫机器人协议 怎样查看 在网址后面加上 robots txt来查看 可以查到哪些是允许的 哪些是不允许的 爬虫的基本步骤 找到网址 发起请求 解析页面并获得原始数据 对数据进行处理 保
  • [深入研究4G/5G/6G专题-23]: 5G NR开机流程4.1 - 随机接入请求消息MSG1与PRACH首个上行信道的调度、时间提前量TA的检测

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 前置条件 第1章 随机接入知识准备
  • Java 到底是值传递还是引用传递?

    在开始深入讲解之前 有必要纠正一下大家以前的那些错误看法了 如果你有以下想法 那么你有必要好好阅读本文 错误理解一 值传递和引用传递 区分的条件是传递的内容 如果是个值 就是值传递 如果是个引用 就是引用传递 错误理解二 Java是引用传递
  • jwt 使用介绍

    JSON Web Token 缩写 JWT 是目前最流行的跨域认证解决方案 本文介绍它的原理和用法 一 跨域认证的问题 互联网服务离不开用户认证 一般流程是下面这样 1 用户向服务器发送用户名和密码 2 服务器验证通过后 在当前对话 ses
  • centos7编译安装基于fastcgi模式的LAMP架构

    工作过程 1 当客户请求的是静态资源时 web服务器会直接把静态资源返回客户端 2 当客户端请求的是动态资源时 httpd的php模块会进行相应的动态资源运算 如果此时过程还需要数据库的数据作为运算参数时 php会连接mysql取得数据然后
  • 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(五)

    整理不易 希望对各位学习软件测试能带来帮助 第四章 自动化测试模型 一个自动化测试框架就是一个集成体系 在这一体系中包含测试功能的函数库 测试数据源 测试对象识别标准 以及种可重用的模块 自动化测试框架在发展的过程中经历了几个阶段 模块驱动
  • 求第N个丑数

    原问题描述 把只包含质因子2 3和5的数称作丑数 Ugly Number 例如6 8都是丑数 但14不是 因为它包含质因子7 习惯上我们把1当做是第一个丑数 求按从小到大的顺序的第N个丑数 这个题不是很难 基本上看完题就能想出解法 但是要想
  • 微信小程序连接本地服务器(在本地服务器上进行真机测试-微信开发者工具)

    1 前言 最近做小程序 一直用的是本地服务器接口 在用真机测试的时候 发现动态数据并不能同步 研究了一下发现操作很简单 2 配置步骤 1 首先打开微信开发者工具 打开右上角的详情 点击本地设置 勾选下面的不校验合法域名 2 打开手机的热点
  • vue应用vue-pdf打包多出一个worker.js文件

    项目要用到pdf预览功能 因为是vue项目就是直接导入了vue pdf组件 但是在进行打包的时候在dist文件夹下面多个worker js文件 导致项目部署后预览pdf直接报了404 后来尝试了很多办法去解决 但是都是不太好用 目前有两种解
  • ASP.NET Core WebAPI学习-1

    Web API学习 ASP NET Core WebAPI学习 1 ASP NET Core WebAPI学习 2 ASP NET Core WebAPI学习 3 ASP NET Core WebAPI学习 4 ASP NET Core W
  • xshell + xmanager 图形化工具使用

    这里使用 Xshell6 0 Xmananger6 0工具 注意 很多资料说 在root下 export DISPLAY 0 0 然后xhost 就可以直接连接 但是在操作中始出现不了图形 后来使用下面的xshell xmanager工具时
  • python离散事件仿真库SimPy官方教程

    参考 SimPy Discrete event simulation for Python 建议先简单了解仿真原理 离散事件仿真原理DES 简单介绍 simpy的实现关键在于生成器的使用 通过例子说明一下 生成器function use y
  • Python 爬虫 NO.4 HTTP 响应状态码

    1 HTTP 响应状态码 响应状态码 即 Response Status Code 表示服务器的响应状态 如 200 代表服务器正常响应 404 代表页面未找到 500 代表服务器内部发生错误 在爬虫中 我们可以根据状态码来判断服务器响应状
  • SIGIR'22

    1 背景 近年来 因果推断在推荐 广告 用户增长等领域得到越来越多的关注和应用 如在用户 客户增长领域的消息发送和权益分发方面 为了兼顾用户体验和平台效率 不仅需要预估用户在接受不同权益下的转化概率 还需要预估用户自然情况下未接收干预的转化
  • cocos2d-x屏幕适配原理分析

    转自 https www 2cto com kf 201212 175527 html https blog csdn net u012861978 article details 53233892 分析 designResolutionS
  • QT5.11下载与安装教程

    一 QT软件下载 Qt 5 9 之后的安装包与之前相比 不再区分 VS 版本和 MinGW 版本 而是全都整合到了一个安装包中 因此 与之前的安装包相比 体积也是大了不少 以前是 1G 多 现在是 2G 多 QT5 9 0安装包 QT5 8
  • 电商打折套路解析

    1 分析出 各个品牌都有多少商品参加了双十一活动 这里面有个问题 最后在设置分类是设置错了 应该有4个类 少量少打折 少量大打折 大量小打折 大量大打折 分析思路可以参考下面的思维导图 import numpy as np import p
  • 使用Matplotlib画心形函数图

    函数如下 代码如下 import numpy as np import matplotlib pyplot as plt 导入模块 t np arange 6 6 0 1 x 16 np power np sin t 3 y 13 np c
  • labview与三菱PLC通讯研究

    labview 与三菱 PLC 通讯研究 一 介绍Labview Labvie是实验室虚拟仪器工程工作台 Labview Virtual Instruments Engineering Workbench 的简称 是美国国家仪器公司开发的虚