记kepServer读写西门子PLC
在程序开发过程中为了测试方法或者验证某个属性的值是否正确 经常通过Kepserver 的 OPC Quick Client来手动置点或者读取点位
例如

这里显示的值都是经过转化后得到的十进制值,那我们如果要针对该word中的某bit 该如何读取,?
首先理解一下最基本的概念
位:bit 最小的存储单位,bool量, 非0则1,表达两个状态
字节:byte 8位组成一个字节 1byte=8bit
字:word 相邻两个字节组成一个字 即16位 1word=2byte=16bit
双字:double word ,两个字组成一个双字 即32位
注意:西门子的字是双数开头,不能是单数,所以在kepServer编写tag时需要注意
例如:

西门子表达比较特殊,就是低字节高位。高字节低位
我们要想给置点或者读点,我们首先要理解西门子PLC的低位高字节是什么意思,这里我借助百度知道的答案

这个图其实已经很明白了,我们借助下图来简单说明一下

这是DB83这个数据块中的一个字的数据 一共16位 这个字的地址就是DB83.DBW10
我们在Kepserver中的tag中是这样写的,也就是

对比上面的高字节低位示意图我们把DB83.DBW10这个字展开
DBW10
dbx10.7 dbx10.6 dbx10.5 dbx10.4 dbx10.3 dbx10.2 dbx10.1 dbx10.0 | dbx11.7 dbx11.6 dbx11.5 dbx11.4 dbx11.3 dbx11.2 dbx11.1 dbx11.0
这样的话假设DBW10的值为0,我们如果想要将dbx10.4置为1
需要给dbw10赋值 0001 0000 0000 0000
在KepServer中赋值需要将对应二进制转化为10进制 在赋值
借助计算器 我们需要将4096赋值给DBW10

打开OPC Quick Client ,给对应tag写值


这样就给dbx10.4置为1了
这样就满足我们如何在某一个"字"中的某一"位"置点;
在某一字中读取某一位的值,反过来就可以,
例如 我们读取到该字的值为34257

我们想要知道dbx10.2的值是0还是1 ?
我们先把十进制34257转化为二进制
1000 0101 1101 0001
对比上面DBW10展开的示意图,dbx10.2的值为1
可能写的比较粗糙,望各位看官批评指正!
记kepServer读写西门子PLC的更多相关文章
- C# 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 官方 ...
- python 读写西门子PLC 包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 nu ...
- java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...
- C#读写西门子PLC数据
C#读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC 本文将使用一个gitHub开源的组件技术来读写西门子plc数 ...
- C#读写三菱PLC和西门子PLC数据 使用TCP/IP 协议
本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...
- 西门子plc串口通讯方式
西门子plc串口通讯的三种方式 时间:2015-10-25 14:31:55编辑:电工栏目:西门子plc 导读:西门子plc串口通讯的三种方式,分为RS485 串口通信.PPI 通信.MPI 通信,自 ...
- C#读写基恩士PLC 使用TCP/IP 协议 MC协议
本文将使用一个Github开源的组件库技术来读写基恩士PLC数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 g ...
- python 读写三菱PLC数据,使用以太网读写Q系列,L系列,Fx系列的PLC数据
本文将使用一个gitHub开源的组件技术来读写三菱的plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...
- C#读写 AB PLC 直接通过节点来读写数据 读写 AllenBradley PLC
本文将使用一个Github开源的组件库技术来读写AB PLC,使用的是基于以太网的实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 官网:http:/ ...
随机推荐
- Confluence安装、汉化及jira整合
今天上午装了一下Confluence,刚开始装的时候成功了,成功后进入数据库配置阶段,本人想把jira和confluence整合一起用,刚开始提示数据库连接问题,后来一直问题提示Connection ...
- 系统学习 Java IO (七)----字节数组流 ByteArrayInputStream/ByteArrayOutputStream
目录:系统学习 Java IO---- 目录,概览 ByteArrayInputStream 如果数据存储在数组中,ByteArrayInputStream 可以很方便读取,它可以返回 InputSt ...
- 【java自定义注解1】java自定义注解-属性
关于自定义注解,以前项目种应用的不多,最近看新项目过程中发现了挺多自定义注解相关内容,使用起来比较巧妙,于是 总结了两种方式,记录如下: 第一种:结合反射进行属性注入,代码如下: 1.定义一个注解: ...
- .NET开发框架(五)-IIS上部署ASP.NET Core项目教程
系列教程:从初学者到架构师的一步步蜕变 本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目,希望对初学.NET CORE的童靴入门有所帮助! 1.打开VS,创建项目,选择ASP.NET ...
- Spring3 springMVC添加注解式WebSocket
Spring3添加注解式WebSocket 推荐升级成spring4以后,spring4已经集成WebSocket. 由于种种原因,项目开发处于快结束的阶段了,升级成spring4不想那么麻烦,但是又 ...
- HTTP 学习笔记01
HTTP hypertext transfer protocol (超文本传输协议) TCP/IP 协议集中的一个应用层协议 用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式 ...
- .Net 通过设置Access-Control-Allow-Origin来实现跨域访问
目录 # 前言 # 为每个API接口单独添加响应头 1.针对 ASP.NET MVC 项目的Controllers 2.针对 ASP.NET Web API项目的Controllers 3.针对ASP ...
- hibernate中的dialect解释
dialect就是“方言”,因为hibernate是要把Java对象转换成关系数据库来描述的,而关系数据库虽然有一些统一的标准,如SQL-92等,但是实际上各数据库如Oracle, MySQL, MS ...
- Java项目案例之--封装的实例
Java项目案例之---封装的实例 有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:J001,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值 有一个学生 ...
- pdfminer获取每页的layout
#! python2 # coding: utf-8 import sys from pdfminer import pdfparser from pdfminer import pdfdocumen ...