当前位置: 首页 > news >正文

西门子PLC S7-200接编码器开发

最近需要在电子秤上面接编码器,通过一定周期内转速变化大小来判断机台加减速还是匀速状态。

一、硬件接线

在这里插入图片描述

二、PLC梯形图程序

在这里插入图片描述
梯形图程序编写好之后,就可以上传到PLC,让PLC处于Run状态就好了。

三、上位机程序

  1. C#版上位机程序
    通过nuget包搜索Sharp7开发包进行安装,然后就可以通过如下代码获取PLC的高速计数器的值。
   S7Client client = new S7Client();client.SetConnectionType(3);int connectionResult = client.ConnectTo("10.10.30.59", 0, 1);if (connectionResult == 0) //连接成功{MessageBox.Show("PLC连接成功");} var buffer = new byte[4];int readResult = client.DBRead(1, 1, buffer.Length, buffer);if (readResult == 0){ushort value0 = (ushort)buffer[0];ushort value1 = (ushort)buffer[1];ushort value2 = (ushort)buffer[2];ushort value3 = (ushort)buffer[3];}client.Disconnect();
  1. Java版上位机程序
    Java连接西门子PLC可以通过s7connector开源项目连接。
    github地址:https://github.com/s7connector/s7connector/ , 下载下来之后将源码拷贝到项目中或者通过maven安装jar包均可。
  S7Connector connector = S7ConnectorFactory.buildTCPConnector().withHost("10.10.30.59").withPort(102).withType(3).withRack(0).withSlot(1).build();byte[] buffer = connector.read(DaveArea.DB, 1, 4, 1);int value0 = buffer[0]&0xFF; //0xFF是为了将负数转为无符号整数int value1 = buffer[1]&0xFF;int value2 = buffer[2]&0xFF;int value3 = buffer[3]&0xFF;connector.close();

相关文章:

  • 数据库故障排查指南技术文章
  • Linux `date` 命令深度解析与高阶应用指南
  • numpy执行无缘无故崩溃 没有报错
  • 13软件测试用例设计方法-场景法
  • Baklib知识中台构建实战
  • Python 内存管理机制详解:从分配到回收的全流程剖析
  • Ansible常用Ad-Hoc 命令
  • 动态规划-53.最大子数组和-力扣(LeetCode)
  • CentOS 7.6 + Docker:搭建后端常用的开发环境
  • springboot3 configuration
  • 软件质量保证与测试实验
  • 【计算机CPU架构】x86架构简介
  • <collection> 标签:用于定义 一对多关系 的映射规则
  • 【Python 集合 Set 】全面学习指南
  • 可转债双低轮动策略
  • c/c++怎样编写可变参数函数.
  • 第二章网络io
  • Spring MVC 的的核心原理与实践指南
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用图像类)
  • Python入门手册:条件判断
  • 做网站用什么编程语言好/好看的html网页
  • 便捷网站建设公司/网站提交收录入口链接
  • 营销型网站建设测验题/seo建站工具
  • 青岛网站建设的方案/抖音关键词挖掘工具
  • java做的大型网站/市场调研问卷
  • 关于党风廉政建设的网站/河南网站优化公司