工控随笔_C#连接PLC_之_C#入门_01_配置学习环境

    最近在做一个东西,需要用到通用开发语言开发一个软件来读取PLC的内容,这方面的难点在于解析PLC利用

以太网通讯的通讯协议,而一般的PLC厂商对自己的协议是封闭的,对一般的开发者是不开放的,虽然可以通过Wireshark

进行解析,但是工作量很大,且如果对Wireshark不熟悉基本也是无解,很难解析出来。

  网上有部分用C#开发的开源库,但是自己对C#语言不懂,所以也就没法学习和应用了。因此我在这里开始了C#的

从零开始学习之旅(我的从零开始是指对C#一无所知,如果你要和我一起开启这趟旅程,应该懂基本的编程通识,这样应该

会更愉快一些)。

  废话不多说,这个题头,就当引子吧,下面开始我们的C#之旅。后续文章不再做说上面的废话(简单的引子)了。

----------------------------------------------------------------我是分割线------------------------------------------------------------------------

1、学习参考书籍:  C#本质论第4版

2、C#版本:V5.0

3、.NET Framwork 版本: v4.0.30319

4、操作系统版本:Windows 7 SP1  X64 CHS

5、编译器: csc.exe

6、代码编辑器: Editplus

7、命令行工具: cmd

8、推荐的轻量级Windows IDE:  SharpDevelop

9、推荐跨平台轻量级IDE:Mono

---------------------------------------------------------------------------------------------------------------------------------------------------------

一、配置环境

  Window7、Windows8、Windows10系统都自带.NET Framwork 版本。 而.NET Framwork 自带编译工具,这个

编译器就是 csc.exe.

  其路径在: C:\Windows\Microsoft.NET\Framework64\v4.0.30319

  如下图所示:

  在 C:\Windows\Microsoft.NET\Framework64 路径有多个版本的.NETFramwork , 如下图所示:

  

  确定好编译器后,我们就可以在命令行里面使用它,但是csc.exe不在系统的搜索路径,因此需要手动设置一下。

如下图所示:

  将环境变量:PATH加上csc.exe的路径。即可在命令行快速访问csc.exe。

  为了快捷的访问csc.exe 我们还可以加上一个环境变量。  csc, 设置如下所示:

  这样就可以在命令行方便的访问csc.exe。 如下图所示:

二、编写代码

  C#的代码可以利用任意文本编辑器编辑。最好是利用一个可以语法高亮的文本编辑器来编写代码。

  第一个程序: HelloWorld.cs

using System;

class HelloWorld
{
    static int Main(string[] args)
    {
        System.Console.WriteLine("Hellow world!");

        System.Console.Read();

        return 0;
    }

}

  保存为: HelloWorld.cs

三   编译程序

  如下图编译程序:

  csc  HelloWorld.cs  就可以编译程序,可以看到编译成功。

  如果不指定输出文件名,则默认的输出程序将是: cs文件对应的文件名。

四、执行程序

  程序的执行结果如下所示:

  

五、方便性脚本

  每次都要进入到程序所在的工作目录很麻烦,有两种方法,一种是设置包含可执行文件路径的PATH环境变量

就和上面的设置一样。

  另外一种是利用cmd脚本开启cmd命令行窗口,同时切换工作路径到可执行文件名所在的路径即可。

  参考cmd脚本命令:

@echo off

cmd /k "start F:\26_C# && cd /D F:\26_C# && del *.bak && csc.exe HelloWorld.cs"

  或者第二种方式

@echo off

cmd /k "cd /D F:\26_C#"

  第二种方式只能打开命令行窗口,第一种方式还可以打开源代码所在的目录。

  具体可以自己测试一下效果。

--------------------------------------------------------------分割线---------------------------------------------------------------

1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

4、或者在页面右下角点推荐哟!!!

--------------------------------------------------------------分割线---------------------------------------------------------------

原文地址:https://www.cnblogs.com/volcanol/p/11031199.html

时间: 2024-10-03 18:37:31

工控随笔_C#连接PLC_之_C#入门_01_配置学习环境的相关文章

工控随笔_C#连接PLC_之_C#入门_04_基本数据类型

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { #region 浮点类型 /*C#中浮点数据类型分为三种 float 类型 double 类型 decimal 类型 三种类型差别在于数据有的精度和有效数据范围不同

工控随笔_C#连接PLC_之_C#入门_05_类_01

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Class { class Program { static void Main(string[] args) { /* 变量定义: 变量类型 变量名: * * 变量初始化 变量类型 变量名=初始值: * * 变量在使用前必须赋值 */ int iVar; //定义变量, int类型即为 int32类型,

工控随笔_03_西门子_Step7项目打开后CPU显示问号解决方法

我们在利用西门子的S7-300/400 PLC的编程软件Step7的时候会出现下面如图所示的问题. 在打开项目的时候,我们会在Simatic Manager里面看到CPU以及一些其他一些组件显示问号. 图.CPU显示问号 一.问题产生的原因 这个问题产生的原因是我们利用低版本的Step7 打开项目的时候,由于Step7 里面没有最新的 硬件的描述性文件导致的. (说明: 西门子的硬件说明文件时.xml格式的文件). 二.解决方法 解决方法有三个: 升级Step7 .重装系统.升级硬件描述性文件.

工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01

最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定程度后才出现的,因为不但操作系统的程序规模越来越大,而且应用 程序的规模也是日益增长. 代码重用在OOP出现后又是进一步提升. 什么是对象呢?  按照以前Unix的套路:一切皆文件.  在这里也可以说一切皆对象.计算机本身 也可以看做一个对象. 对象具有特征和功能,特征表现为属性,功能表现为方法.

工控随笔_07_西门子_WinCC利用命令行实现操作log日志

在WinCC中可以通过报警纪录来实现操作员纪录,这个需要WinCC的消息系统进行组态和配置. 利用消息系统进行实现上诉功能不但复杂而且时间久啦也不方便查询.那么有没有一种简单的方法来 实现操作员纪录呢? 我们知道在Windows系统中可以通过批处理来实现很多功能,而且操作也比较简单,学习起来也 没有多大的难度.那么我们是否可以Windows的批处理功能来实现日志功能呢? 一.WinCC执行外部程序. 在WinCC中通过 ProgramExecute("notepad.exe"); 函数

火力发电厂工控系统网络安全解决方案 - 对比分析

发电厂网络概述 火电厂网络架构中涉及的系统主要包括:火电机组分散控制系统DCS.火电机组辅机控制系统DCS\PLC.火电厂级信息监控系统.调速系统和自动发电控制功能AGC.励磁系统和自动电压控制功能AVC.梯级调度监控系统.网控系统.继电保护.故障录波.电能量采集装置.电力市场报价终端等系统. 电力行业在安全方面是考虑地比较早的,形成了"安全分区.网络专用.横向隔离.纵向认证"的总体原则. 区域一般分为:生产控制大区(控制区+非控制区),管理信息大区. 也有情况下,电厂会将区域分为4个

通过Maven配置测试环境和开发环境连接不同的数据库

通过Maven配置测试环境和开发环境连接不同的数据库 作者及来源: 通灵宝玉 - 博客园    收藏到→_→: 此文来自: 马开东博客 网址:http://www.makaidong.com 摘要: 通过Maven配置测试环境和开发环境连接不同的数据库 "通过Maven配置测试环境和开发环境连接不同的数据库":关键词:通过 maven 配置 测试 环境 开发 环境 连接 不同 其他数据库 通过maven配置测试环境和开发环境连接不同的其他数据库 操作上分3个步骤 1.在数据持久层的po

工控系统的指纹识别技术

转载:灯塔实验室 当前,指纹识别技术已被或坏或好的广泛应用于ICT(信息和通信技术)系统.攻击者通过扫描网络获取设备指纹来关联漏洞入侵系统,安全防护者则利用设备指纹来发现系统的脆弱性,检测系统的网络异常.在工业控制系统(ICS)中,指纹识别技术亦用于发现ICS系统脆弱性,检测攻击行为等方向.本文主要关注工控安全领域指纹识别技术. 指纹识别是什么 在ICT领域里,指纹识别是利用不同信息描述运行于网络中的设备或者软件的一种技术.我们了解最多的是设备指纹,被用来远程识别设备的硬件,操作系统,运行软件(

工控信息网络隐患多 电网安防须步步为营

随着工业以太网的快速发展,工控系统网络信息安全问题日渐显露.以太网可能会遇到包括病毒感染.非法操作等网络安全隐患;而软件的漏洞.错误配置或者网络管理的失误也会造成工控网络异常;另外,工业控制系统网络与其他网络连接时缺乏安全边界控制,也是常见的安全隐患.2010年的震网病毒就是例证,最近的"棱镜门"事件又再次为信息网络安全敲响了警钟,对此,我们应当如何应对,这些安全隐患究其根底原因何在?另外,工信部451号文件(即<关于加强工业控制系统信息安全管理的通知>)已出台近两年,为何