工控随笔_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 ;
} }
保存为: 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、或者在页面右下角点推荐哟!!!
--------------------------------------------------------------分割线---------------------------------------------------------------
工控随笔_C#连接PLC_之_C#入门_01_配置学习环境的更多相关文章
- 工控随笔_C#连接PLC_之_C#入门_03_基本数据类型
using System; using System.Collections.Generic; using System.Linq; using System.Text; //namespace 关键 ...
- 工控随笔_C#连接PLC_之_C#入门_02_程序性结构和注释
前段时间看C#本质论,发现内容有点抽象,不适合入门,现在换了一本适合入门的书籍: C#图解教程. //引用命名空间,命名空间相当于一个容器,通过不同的容器来区分同名的内容 //System命名空间是. ...
- 工控随笔_10_西门子_WinCC的VBS脚本_01_基础入门
很多人都认为VB语言或者VBS脚本语言是一种很low的语言,从心里看不起VB或者VBS, 但是其实VBS不仅可以做为系统管理员的利器,同样在工控领域VBS语言大有用武之地. 西门子的WinCC提供了两 ...
- 工控随笔_13_西门子_WinCC的VBS脚本_04_变量类型之二
上一个随笔说了一些关于vbs变量类型的内容,这一篇我们继续说说变量类型相关的内容. 一.NULL补充内容 '需要注意的是,NULL不能简单通过 = 来进行比较,而必须通过 'IsNull函数来实现 ' ...
- 工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01
最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定 ...
- 工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型
说到编程语言,总是绕不开数据类型,因为数据类型决定了数据可以进行什么样的操作.同时数据类型 从广义上来说是一种数据结构,在过程式编程的过程中,曾经有过这样一种说法: 程序 = 数据结构 + 算法 可见 ...
- 工控随笔_11_西门子_WinCC的VBS脚本_02_运算符
VBS脚本做为编程语言,提供了很多的运算符,通过这些运算符,可以实现不同的操作.运算符具有不同的类型 不同的运算符之间具有运算优先级. 一.运算符的分类 大体分为以下几类: 1.赋值运算符 2.算术运 ...
- 工控随笔_03_西门子_Step7项目打开后CPU显示问号解决方法
我们在利用西门子的S7-300/400 PLC的编程软件Step7的时候会出现下面如图所示的问题. 在打开项目的时候,我们会在Simatic Manager里面看到CPU以及一些其他一些组件显示问号. ...
- 工控随笔_02_西门子_WinCC的IO域利用C脚本返回值
WinCC的输入输出域用来显示信息或者接受操作人员的输入.当作为显示功能时,只有直接的变量连接 才能正常的显示,如果使用动态对话框进行设置且用了表达式则不能正确显示. 但是有时候我们在WinCC变量管 ...
随机推荐
- python 验证码识别示例(三) 简单验证码识别
今天介绍一个简单验证的识别. 主要是标准的格式,没有扭曲和变现.就用 pytesseract 去识别一下. 验证码地址:https://user.www.gov.cn/sso/verifyimg_ed ...
- GC线程是不是守护线程
是 线程的话分为守护线程和非守护线程(即用户线程) 只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作; 只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作,守护线程 ...
- xz格式解压
1.安装xz命令 yum install xz -y 2.将xz文件解压为tar文件 xz -d example.tar.xz 3.将tar文件解压 tar xf example.tar 如果无法安装 ...
- vue router 中,children 中 path 为空字符串的路由,是默认打开的路由(包括在 el-tabs 中嵌套路由的情况)
详见该页面的最后一个代码块:https://router.vuejs.org/zh/guide/essentials/nested-routes.html#%E5%B5%8C%E5%A5%97%E8% ...
- 利用pil库处理图像
1关于PIL PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 2PIL的主要功 ...
- 22、pandas表格、文件和数据库模块
pandas官方文档:https://pandas.pydata.org/pandas-docs/stable/?v=20190307135750 pandas基于Numpy,可以看成是处理文本或者表 ...
- Java Excel 导入导出(二)
本文主要叙述定制导入模板——利用XML解析技术,确定模板样式. 1.确定模板列 2.定义标题(合并单元格) 3.定义列名 4.定义数据区域单元格样式 引入jar包: 一.预期格式类型 二.XML模板格 ...
- luogu P1550 [USACO08OCT]打井Watering Hole
题目背景 John的农场缺水了!!! 题目描述 Farmer John has decided to bring water to his N (1 <= N <= 300) pastur ...
- nginx 反向代理之 proxy_set_header
proxy_set_header用来设定被代理服务器接收到的header信息. 语法:proxy_set_header field value; field :为要更改的项目,也可以理解为变量的名字, ...
- nginx 反向代理配置示例
Nginx反向代理在生产环境中使用很多的. 场景1: 域名没有备案,可以把域名解析到香港一台云主机上,在香港云主机做个代理,而网站数据是在大陆的服务器上. server { listen ; serv ...