基于Linux系统实现西门子PLC的数据采集
-Begin-
前言
.NET很早可以跨平台了,从早期的Mono到.Net Core,再到现在的.NET 5,以及下个月即将发布的.NET 6,.NET也是在一直稳步发展。
今天跟大家分享一下,基于Linux系统实现西门子PLC的数据采集。
准备
VS版本升级到最新,至少在v16.8以上。
基于.Net 5或.Net Core的通信库。
Linux环境,这里用的是CentOS的虚拟机,这个虚拟机我也分享给大家,公众号里回复关键词:CentOS7虚拟机。
开发
1、使用VS2019创建一个.NET 5框架的项目。
2、引入通信库,确保通信库是基于.Net 5开发的。
3、编写几行简单的代码。
class Program{static void Main(string[] args){Console.WriteLine("Let's Begin!");if (siemens.Connect("192.168.1.200", xktComm.Common.CPU_Type.S71200, 0, 0)){Console.WriteLine("Connect Success");while (true){var val = siemens.Read("DB1.DBD0", xktComm.Common.VarType.Real);Console.WriteLine(val.ToString()); Thread.Sleep(1000);}}else{Console.WriteLine("Connect Fail");}Console.ReadLine();}private static xktComm.PLC.Siemens.SiemensS7 siemens = new xktComm.PLC.Siemens.SiemensS7();}
4、本地运行测试,确保执行结果无误。
部署
CentOS系统默认是没有.NET 5环境的,所以需要提前安装一下.NET 5环境。
安装 .NET 5 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。打开终端并运行以下命令:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
安装 SDK:NET SDK 使你可以通过 .NET 开发应用。如果安装 .NET SDK,则无需安装相应的运行时。若要安装 .NET SDK,请运行以下命令:
sudo yum install dotnet-sdk-5.0
安装运行时:在终端中,运行以下命令:
sudo yum install dotnet-runtime-5.0
检查安装结果:在终端中,运行以下命令:
dotnet --info
发布
1、回到VS2019中,解决方案,右击,选择发布。
2、发布页面选择选项——文件夹。
3、下一步中继续选择——文件夹。
4、文件夹位置使用默认,点击完成。
5、完成后点击可移植,在弹出的界面中,根据情况设置。
6、最后点击一下发布按钮即可。
7、查看发布结果,根据发布路径查看是否发布完成。
运行
1、将发布的文件夹拷贝到Linux系统中即可,由于是虚拟机,如果安装了VMware Tools,是可以直接复制的,如果是其他的系统,可能需要通过远程工具或者Xshell来实现。
2、进入Publish文件夹,右击打开命令行Open in Terminal,输入dotnet Net5CrossPlateDemo.dll,执行。
3、执行结果如下,大功告成。
-END-
基于Linux系统实现西门子PLC的数据采集相关推荐
- linux下的plc软件下载,基于Linux系统的软PLC的实现
以具有开放式源码和良好可靠性的Linux系统作为软件平台,利用C语言开发了软PLC.给出软PLC的总体实现方法,并以指令表语言为例进行具体介绍.该软PLC由编辑环境和执行环境组成,共同完成软PLC编程 ...
- ansole终端链接linux,基于Linux系统的智能家居远程控制系统设计论文.doc
基于Linux系统的智能家居远程控制系统设计论文 学科分类号 0801 北京邮电大学毕业论文 题目 (中文):基于Linux系统的智能家居远程控制系统设计 (英文):The smart home re ...
- 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...
阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程) (仅此纪念人生第一篇学习博客) 前阵子接了一个小小的JavaWe ...
- 怎样实现linux的网络通信协议是,一种基于Linux系统的TCP/IP协议栈的实现
一种基于Linux系统的TCP/IP协议栈的实现 本文分析了Linux内核TCP/IP协议栈的实现,给出了Linux网络数据处理流程,探讨了Linux的I (本文共3页) 阅读全文>> 介 ...
- linux 修改bios信息,一种基于Linux系统通过IPMI工具修改BIOS选项的测试方法及系统_2017103901253_权利要求书_专利查询_专利网_钻瓜专利网...
1.一种基于Linux系统通过IPMI工具修改BIOS选项的测试方法,其特征在于: 步骤101,启用IPMI服务: 步骤102,BIOS Setup选项使能设置: 步骤103,修改BIOS选项当前值与 ...
- linux 认证 转发,一种基于Linux系统实现路由器的portal认证报文转发方法和装置
主权项: 1.一种基于Linux系统实现路由器的portal认证报文转发方法,其特征在于,在Linux系统上创建虚拟网卡,为虚拟网卡配置环回口IP地址,配置portal进程监听环回口的TCP协议预设端 ...
- 软raid1 重新同步_软RAID搭建基于linux系统搭建RAID5
实验二.软RAID搭建-基于linux系统搭建RAID5 实验要求: 1)创建RAID5; 2)添加一个热备盘sdj 3)指定chunk为32k 4停止阵列,重新激活阵列 5使用热备盘,扩展阵列容量, ...
- 限速linux c语言,基于Linux系统的流量控制程序的C语言代码
基于Linux系统的流量控制程序的C语言代码 基于Linux系统的流量控制程序的C语言代码 mytbf.h头文件 ifndef MYTBF_H_ #define MYTBF_H_ typedef vo ...
- 基于Linux系统部署新世纪版五笔输入法
基于Linux系统部署新世纪版五笔输入法 出于工作需要,突然生出学习五笔的想法.五笔有三个版本:86/98/新世纪. 按照新手上路,有新学新的想法,选择了新世纪版. 然后发现了个坑:公司电脑是Linu ...
最新文章
- 《Lancet》发表全球学者联合声明!
- python matplotlib散点图-python matplotlib更新函数的散点图
- Linux系统基本命令之vim编辑器的使用
- ios程序内发送邮件的代码
- php链接mysql验证用户登录,PHP连接mysql验证用户名是否存在
- Solr in Action 翻译完成情况
- Python魔术世界 1 如何使用Visual Studio在WIN10中一键安装Python3入门编程环境并测试Django...
- N进制的规范十进制表示(洛谷P2084题题解,Java语言描述)
- stl2xml.py 代码实现了stl格式转化为xml格式
- C#:设置CefSharp的一些参数,比如忽略安全证书
- 经验:多表复制(结构、数据)
- poj1113 凸包
- TeamTalk Lock模块
- 服务器启动端口被占用,解决Nginx启动出现端口被占用的问题
- npoi合并取消合并单元格
- 企业财务数据分析指标
- 2019秋招cv岗求职心得
- 迷你西游最新服务器是哪个,《迷你西游》新开服务器公告
- matplotlib.pyplot 标记出曲线上最大点和最小点的位置
- 项目工作量估算的专家法