-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的数据采集相关推荐

  1. linux下的plc软件下载,基于Linux系统的软PLC的实现

    以具有开放式源码和良好可靠性的Linux系统作为软件平台,利用C语言开发了软PLC.给出软PLC的总体实现方法,并以指令表语言为例进行具体介绍.该软PLC由编辑环境和执行环境组成,共同完成软PLC编程 ...

  2. ansole终端链接linux,基于Linux系统的智能家居远程控制系统设计论文.doc

    基于Linux系统的智能家居远程控制系统设计论文 学科分类号 0801 北京邮电大学毕业论文 题目 (中文):基于Linux系统的智能家居远程控制系统设计 (英文):The smart home re ...

  3. 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...

    阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程) (仅此纪念人生第一篇学习博客) 前阵子接了一个小小的JavaWe ...

  4. 怎样实现linux的网络通信协议是,一种基于Linux系统的TCP/IP协议栈的实现

    一种基于Linux系统的TCP/IP协议栈的实现 本文分析了Linux内核TCP/IP协议栈的实现,给出了Linux网络数据处理流程,探讨了Linux的I (本文共3页) 阅读全文>> 介 ...

  5. linux 修改bios信息,一种基于Linux系统通过IPMI工具修改BIOS选项的测试方法及系统_2017103901253_权利要求书_专利查询_专利网_钻瓜专利网...

    1.一种基于Linux系统通过IPMI工具修改BIOS选项的测试方法,其特征在于: 步骤101,启用IPMI服务: 步骤102,BIOS Setup选项使能设置: 步骤103,修改BIOS选项当前值与 ...

  6. linux 认证 转发,一种基于Linux系统实现路由器的portal认证报文转发方法和装置

    主权项: 1.一种基于Linux系统实现路由器的portal认证报文转发方法,其特征在于,在Linux系统上创建虚拟网卡,为虚拟网卡配置环回口IP地址,配置portal进程监听环回口的TCP协议预设端 ...

  7. 软raid1 重新同步_软RAID搭建基于linux系统搭建RAID5

    实验二.软RAID搭建-基于linux系统搭建RAID5 实验要求: 1)创建RAID5; 2)添加一个热备盘sdj 3)指定chunk为32k 4停止阵列,重新激活阵列 5使用热备盘,扩展阵列容量, ...

  8. 限速linux c语言,基于Linux系统的流量控制程序的C语言代码

    基于Linux系统的流量控制程序的C语言代码 基于Linux系统的流量控制程序的C语言代码 mytbf.h头文件 ifndef MYTBF_H_ #define MYTBF_H_ typedef vo ...

  9. 基于Linux系统部署新世纪版五笔输入法

    基于Linux系统部署新世纪版五笔输入法 出于工作需要,突然生出学习五笔的想法.五笔有三个版本:86/98/新世纪. 按照新手上路,有新学新的想法,选择了新世纪版. 然后发现了个坑:公司电脑是Linu ...

最新文章

  1. 《Lancet》发表全球学者联合声明!
  2. python matplotlib散点图-python matplotlib更新函数的散点图
  3. Linux系统基本命令之vim编辑器的使用
  4. ios程序内发送邮件的代码
  5. php链接mysql验证用户登录,PHP连接mysql验证用户名是否存在
  6. Solr in Action 翻译完成情况
  7. Python魔术世界 1 如何使用Visual Studio在WIN10中一键安装Python3入门编程环境并测试Django...
  8. N进制的规范十进制表示(洛谷P2084题题解,Java语言描述)
  9. stl2xml.py 代码实现了stl格式转化为xml格式
  10. C#:设置CefSharp的一些参数,比如忽略安全证书
  11. 经验:多表复制(结构、数据)
  12. poj1113 凸包
  13. TeamTalk Lock模块
  14. 服务器启动端口被占用,解决Nginx启动出现端口被占用的问题
  15. npoi合并取消合并单元格
  16. 企业财务数据分析指标
  17. 2019秋招cv岗求职心得
  18. 迷你西游最新服务器是哪个,《迷你西游》新开服务器公告
  19. matplotlib.pyplot 标记出曲线上最大点和最小点的位置
  20. 项目工作量估算的专家法

热门文章

  1. GetLastError返回值的含义
  2. 酒店管理系统数据库搭建
  3. Cadence高速电路板设计与仿真(第6版)——原理图与PCB设计——[程序源代码]
  4. WZOI-388扫雷游戏地雷数计算
  5. DFS——深度优先搜索的简单易懂入门心得
  6. MDS100-16-ASEMI工业焊机、100A整流桥
  7. Free Spire.Doc组件C# 读取Word文档中的文本内容
  8. Java 根据IP获取城市(ip2region)
  9. 【评测】胚胎干细胞转染方法
  10. 【BZOJ3091】城市旅行