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

建企业门户网站广州科 外贸网站建设

建企业门户网站,广州科 外贸网站建设,甘肃省嘉峪关建设局网站,王野天津音乐广播电台在实际工作中,如果我们需要开发一个运行在后台,无需用户交互,不需要界面的应用程序,我们可以通过Windows服务来实现。 本文主要介绍如何基于C#创建一个Windows服务,来实现西门子PLC的定时读取保存。 一、Windows服务…

在实际工作中,如果我们需要开发一个运行在后台,无需用户交互,不需要界面的应用程序,我们可以通过Windows服务来实现。

本文主要介绍如何基于C#创建一个Windows服务,来实现西门子PLC的定时读取保存。

一、Windows服务说明

Windows 服务是一种特殊类型的应用程序,能够在系统启动时自动运行,且无需用户登录即可执行。

它适合于以下场景:

  • 持续运行的任务(如日志采集、网络代理等)

  • 系统后台维护(如自动更新、性能监控)

  • 需要在无人值守环境中执行的任务

Windows 服务的核心特性:

  • 通过服务控制管理器(SCM) 管理

  • 运行时与用户登录状态无关

  • 支持系统启动时自动运行

二、Windows服务创建

1、创建一个新项目,项目模板选择Windows服务(.Net Framework):

图片

2、项目名称为WindowsServiceDemo,项目创建完成后如下:

图片

3、修改服务名称为SiemensPLCService:

图片

4、在设计界面的空白处,右击弹窗中,选择添加安装程序:

图片

5、点击添加安装程序之后,会自动添加一个ProjectInstaller界面,里面有两个组件,分别是serviceProcessInstaller和serviceInstaller。

图片

6、选择serviceInstaller,在右侧的属性进行设置,主要可以设置以下属性:

  • ServiceName:服务名称

  • Description:服务描述

  • StartType:启动类型

图片

7、接着选择ProjectInstaller进行设置,主要设置Account,指示用来运行此服务的账户类型,可以设置为LocalSystem。

图片

8、设置完成之后,切换到SiemensPLCService这个类,点击切换到代码视图,我们可以看到后台有一些自动生成的代码:


public partial class SiemensPLCService : ServiceBase
{public SiemensPLCService(){InitializeComponent();}protected override void OnStart(string[] args){}protected override void OnStop(){}
}

    我们可以在OnStart和OnStop里写一些代码逻辑。

    9、写了一个简单的逻辑,就是每次服务启动或停止都会向指定的文件中写入一串信息。

    private Plc siemens;
    private CancellationTokenSource cts;
    protected override void OnStart(string[] args)
    {try{this.siemens = new Plc(CpuType.S7200Smart, "192.168.2.150", 0, 0);this.siemens.Open();cts = new CancellationTokenSource();Task.Run(async () =>{while (!cts.IsCancellationRequested){try{uint temp = Convert.ToUInt32(this.siemens.Read("DB1.DBD4"));float val = temp.ConvertToFloat();await Task.Delay(1000);WriteInfo("读取PLC数据:"+val.ToString("f2"));}catch (Exception ex){WriteInfo(ex.Message);}}this.siemens.Close();});}catch (Exception ex){WriteInfo(ex.Message);}
    }
    private string filePath = @"D:\ServiceLog.txt";
    private void WriteInfo(string info)
    {using (FileStream stream = new FileStream(filePath, FileMode.Append)){using (StreamWriter writer = new StreamWriter(stream)){writer.WriteLine($"{DateTime.Now},{info}");}}
    }
    protected override void OnStop()
    {this.siemens?.Close();
    }

      三、Windows服务安装卸载

      我们直接运行刚刚创建的服务,发现是无法运行的,提示如下:

      图片

      接下来,我们使用这个exe来进行安装和卸载Windows服务。

      1、首先,使用管理员权限打开cmd命令行,然后进入这个路径下,便于直接操作InstallUtil。

      cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

      图片

      2、安装服务命令:installutil  exe绝对路径 ;

      installutil C:\Users\Administrator\Desktop\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe

      图片

      打开服务,可以看到TestService这个名称的服务已经安装完成,

      图片

      3、安装完成后,双击打开,可以启动服务,也可以手动停止:

      图片

      4、观察D盘文件,可以看到PLC的数据每秒会存一次到指定文件中:

      图片

      5、需要卸载服务时,可以执行卸载服务命令:installutil  exe绝对路径 -u ;

      installutil C:\Users\Administrator\Desktop\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe -u

      图片


      文章转载自:

      http://uvgnHpNy.mmqng.cn
      http://K6RvAedB.mmqng.cn
      http://tbMiWE0v.mmqng.cn
      http://MZBWDi7Q.mmqng.cn
      http://ORpqniGG.mmqng.cn
      http://KfsrZR5L.mmqng.cn
      http://g7nE2G5o.mmqng.cn
      http://04AFj996.mmqng.cn
      http://U0PK7lND.mmqng.cn
      http://ykAKpFPh.mmqng.cn
      http://3zNC56sP.mmqng.cn
      http://M42rO1vO.mmqng.cn
      http://rUjMJPW1.mmqng.cn
      http://vsLAVpzC.mmqng.cn
      http://xIxP6sz6.mmqng.cn
      http://vufKnIAB.mmqng.cn
      http://Zn5d6qfD.mmqng.cn
      http://Vjc86LMp.mmqng.cn
      http://2aDtHK4E.mmqng.cn
      http://0HzOqJcO.mmqng.cn
      http://HEdYT64L.mmqng.cn
      http://jmjcz2ss.mmqng.cn
      http://7CQlLxy4.mmqng.cn
      http://P2kTgCZP.mmqng.cn
      http://Pli0iYQw.mmqng.cn
      http://dpl6Izl5.mmqng.cn
      http://RnDyZdE1.mmqng.cn
      http://aZB8baxZ.mmqng.cn
      http://YG3qWfl9.mmqng.cn
      http://FTB6QRq1.mmqng.cn
      http://www.dtcms.com/wzjs/740389.html

      相关文章:

    • 做的最好的网站公司做外贸在哪个网站
    • 百度云服务器做asp网站杭州seo教程
    • 网站设计编程有哪些同声传译公司网站建设
    • 专业电商网站济宁网站开发平台
    • ASP个人网站的建设做网站有前途
    • 计算机网站建设招聘怎么查网站的关键词排名
    • 手机主页网站推荐湖南网站优化代运营
    • 爱最好网站建设设计在线中国
    • 网站设计与建设的农夫山泉软文300字
    • 百度收录比较好的网站网站建设全包需要多少钱
    • 番禺网站优化平台以蓝色为主色调的网站
    • 网站用什么语言好安阳县面积
    • 做音乐网站要多少钱品牌网站建设案例
    • wordpress博客文章怎么设置百度seo按天计费
    • 宁波网站建设信息网站优化排名分享隐迅推
    • 湖州市住房和城乡建设局网站网站开发答辩记录表
    • 遂宁市网站建设滨城网站开发
    • 胶州市 网站建设企业如何创建品牌
    • 全屏产品网站专业网站建设费用
    • 济南网站怎么做seo做配件出口上什么网站
    • 青海汽车网站建设推广普通话手抄报简单又好看内容
    • iis6 建设网站浏览模板做的网站如何下载
    • 网站建设视频技术论坛阿里云域名怎么做网站
    • 如何用子域名做网站wordpress主题放哪
    • 如果让你建设一个网站上海设计网站公司
    • 用php做网站要用什么软件曲阜做网站哪家好
    • 电子商务网站的建设与规划书软件界面设计方案
    • 手机网站底部固定菜单wordpress登陆不跳转
    • 加强企业门户网站建设什么网站可以做外国生意
    • 好看的公司网站网易企业邮箱登录登录入口