工控随笔_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变量管 ...
随机推荐
- 在kubernetes集群中部署ElasticSearch集群--ECK
Elastic Cloud on Kubernetes (ECK) ---ECK是这个说法哈. 基本于k8s operator的官方实现. URL: https://www.elastic.co/gu ...
- canvas详解---绘制弧线
Draw an arc context.arc(centerx,centery,radius,startingAngle,endingAngle,anticlockwise=false); 参数一是圆 ...
- 项目Alpha冲刺(团队)-博客汇总
格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(团队) 团队名称:为了交项目干杯 作业目标:集中记录所有敏捷冲刺日志的集合 团队信息 队员学号 队员姓名 个人博客地 ...
- 品优购项目 单表过程 乒乓过程 入口 MyBatis逆向工程 dubbo框架搭建 品牌表CRUD bug集锦
- MongoDB shell 3 集合方法
方法名 描述 db.collection.aggregate() 聚合,主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果 db.collection.bulkWrite() 批量写入 ...
- Django 基础篇(一)
创建虚拟环境 创建:mkvirtualenv [虚拟环境名称] 删除:rmvirtualenv [虚拟环境名称] 进入:workon [虚拟环境名称] 退出:deactivate 所有的虚拟环境,都位 ...
- 数列的通项公式$a_n$的求法
前言 求数列的通项公式,其本质是求函数的解析式.重点理解内涵. 求解必备 你见到这样的式子\(a_{n+1}-a_n = m\) (\(m\)常数)你一定会反应出是等差数列,那么见到 \(S_{n+1 ...
- python实现余弦相似度文本比较
向量空间模型VSM: VSM的介绍: 一个文档可以由文档中的一系列关键词组成,而VSM则是用这些关键词的向量组成一篇文档,其中的每个分量代表词项在文档中的相对重要性. VSM的例子: 比如说,一个文档 ...
- VIM 命令速查表
今天整理一份 VIM 常用命令速查表,当做给自己备忘. 进入VIM 相关 命令 描述 vim filename 打开或者新建文件 vim +n filename 打开文件并将光标置于第n行行首 vim ...
- convmv 解决GBK 迁移到 UTF-8 ,中文 文件名乱码
yum install convmv 命令: convmv -f GBK -t UTF-8 -r --nosmart --notest <目标目录> -f from -t to --nos ...