C#上位机开发
1、新建C#项目工程
首先选择新建Windows窗体应用(.NET Framework),然后选择项目保存位置,填写项目名称,这里因为我们不需要用git进行版本管理,所以不用新建GIT存储库;
框架是指.net框架,4以及4以下的.NET框架可以在xp上运行,4以上可以在win7/8/10上运行,鉴于当前大多数操作系统都是win7或win10,选择4.5版本。
2、窗体介绍及代码分析
这里我们双击窗体界面,这也是VS的特性,双击一个控件,就会进入对应代码文件部分,这些代码全由VS在生成项目时自动生成,下面进行详细的解释:
1 /*filename:Form1.cs*/
2 //使用命名空间
3 using System;
4 using System.Collections.Generic;
5 using System.ComponentModel;
6 using System.Data;
7 using System.Drawing;
8 using System.Linq;
9 using System.Text;
10 using System.Windows.Forms;
11
12 //用户项目工程自定义命名空间HelloWorld
13 namespace HelloWorld
14 {
15 //定义了一个名称为Form1的公共类,并且在定义类的同时创建了一个这个类的对象,名为Form
16 //partial关键字
17 public partial class Form1 : Form
18 {
19 //与类同名的构造方法
20 public Form1()
21 {
22 InitializeComponent();
23 }
24 //用户自定义方法,窗体加载时由Form对象调用
25 private void Form1_Load(object sender, EventArgs e)
26 {
27 }
28 }
29 }
大林上位机机器视觉_苏州电工培训_苏州PLC培训_苏州上位机培训_苏州机器视觉培训_苏州工业机器人培训_最适合电工及plc编程人员学习的上位机机器视觉课程 大林老师:15861139266(微信同号)
命名空间(namespace):在C#中用命名空间将很多类的属性及其方法进行封装供调用,类似C语言中将变量和函数封装成一个个.h文件,调用的时候只需要#include "filepath + filename"就可以使用,比如刚开始时用关键字using声明了一些所需要的系统命名空间(line1-10);然后采用关键字namespace来自定义一个用户工程所需的命名空间HelloWorld,在我们定义的这个命名空间里就可以定义一些类和方法来进行下一步的实现;
类(class):C#是一门面向对象的编程语言,所以最基本的就是类和对象,对象的特征是具有属性(C语言中称为变量)和方法(C语言中称为函数),然后我们定义一个类来描述这个对象的特征,注意:这个时候定义的类不是真实存在的,所以不会分配内存空间,当我们用所定义的这个类去创建一个类的对象,这个对象是真实存在的,它会占用内存空间,比如在这个工程中定义了一个名称为Form1的公共类,并且在定义类的同时创建了一个这个类的对象,名为Form;
方法:前面已经说过,在面向对象编程中是没有变量和函数的,所有的函数都被封装在类中,属于对象的方法,最基本的是类的构造方法,该方法与类名同名,在用类创建一个具体对象时自动调用,不可缺少,比如Form1( );另外一种是自己定义的用户方法,比如该类中的Form1_Load()方法,就是在初始化窗口时,通过具体对象Form调用:Form.Form1_Load( );
访问修饰符:用来控制类、属性、方法的访问权限,常用有5个,默认私有,不能被外部访问;
私有的private,公共的public,受保护的protected,内部的internal,受保护内部的protect internal;
这里有一个重点,在定义Form1类的时候含有一个关键字partial,这里就不得不说C#语言设计一个重要的特性了,能作为大多数人开发上位机的首选,C#有一个特性就是设计的时候界面与后台分离,但是类名相同,首先看一下工程文件结构:
可以看到,Form1.cs文件下面包含了另一个Form1.Designer.cs文件,再打开Form1.Designer.cs这个文件,是不是很惊奇,和前面一模一样,再次定义了一个命名空间HelloWorld和Form1类,这个部分类中定义了我们使用的控件、事件委托以及如Dispose方法等。因为这里面的代码都是自动生成的,因此设计成了一个部分类。最关键的一点,这里类也是用partial关键字修饰的,可以看到,Partial是局部类型的意思,允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中,用partial定义的类可以在多个地方被定义,最后C#编译器编译时会将这些类当作一个类来处理;
1 /*@filename:Form1.Designer.cs */
2
3 namespace HelloWorld
4 {
5 partial class Form1
6 {
7 ///
8 /// 必需的设计器变量。
9 ///
10 private System.ComponentModel.IContainer components = null;
11
12 ///
13 /// 清理所有正在使用的资源。
14 ///
15 ///如果应释放托管资源,为 true;否则为 false。
16 protected override void Dispose(bool disposing)
17 {
18 if (disposing && (components != null))
19 {
20 components.Dispose();
21 }
22 base.Dispose(disposing);
23 }
24
25 #region Windows 窗体设计器生成的代码
26
27 ///
28 /// 设计器支持所需的方法 - 不要修改
29 /// 使用代码编辑器修改此方法的内容。
30 ///
31 private void InitializeComponent()
32 {
33 this.SuspendLayout();
34 //
35 // Form1
36 //
37 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
38 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
39 this.ClientSize = new System.Drawing.Size(418, 331);
40 this.Name = "Form1";
41 this.Text = "Form1";
42 this.Load += new System.EventHandler(this.Form1_Load);
43 this.ResumeLayout(false);
44
45 }
46 #endregion
47 }
48 }
Main: 一切程序都有入口主函数main,C#也是如此,在Program.cs文件中定义了Program类,该类中拥有主函数main( ), 在main函数中,第三行代码是一切的开始,调用Form1类的构造函数,创建一个Form对象,一切由此开始,代码如下:
大林上位机机器视觉_苏州电工培训_苏州PLC培训_苏州上位机培训_苏州机器视觉培训_苏州工业机器人培训_最适合电工及plc编程人员学习的上位机机器视觉课程 大林老师:15861139266(微信同号)
1 /* @filename: Program.cs */
2 using System;
3 using System.Collections.Generic;
4 using System.Linq;
5 using System.Windows.Forms;
6
7 namespace HelloWorld
8 {
9 static class Program
10 {
11 ///
12 /// 应用程序的主入口点。
13 ///
14 [STAThread]
15 static void Main()
16 {
17 Application.EnableVisualStyles();
18 Application.SetCompatibleTextRenderingDefault(false);
19 Application.Run(new Form1()); //调用Form1类的构造函数,创建一个Form对象,一切由此开始
20 }
21 }
22 }
再来解释一下最后三个文件:第一个文件主要是应用程序发布时的一些属性设置,版本号,属性,版权之类的,其余两个文件是工具自动生成的一些设置文件,不再过多赘述;
/* @filename:Assemblylnfo.cs*/
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("HelloWorld")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("HelloWorld")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("094ac56a-7a59-4f32-a2eb-857135be4d2c")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
3、Hello,World
下面就正式开始C#程序的设计,首先是界面的实现,可以随意从控件工具箱中拖放控件到窗体中,这里我拖动两个Button和一个TextBox,并在右边设置框中修改每个控价的属性,界面如图:
这个时候如果查看Form1.cs文件,会发现和之前一样,这里就需要介绍另外几个开发GUI界面的知识点了,首先,我们想要实现的功能是:当按下Send按钮时,文本框显示^_^Hello,World^_^字样,当按下Clear按钮时,文本框清空;这属于人机交互,一般人机交互的处理方式有两种,第一种是查询处理方式,比如在DOS系统下、Linux系统等命令行下的程序设计,第二种是事件处理机制,有了很多的优越性,由传统的查询法耗费CPU一直在检测,变成了事件处理机制下的主动提醒告知,大幅度减轻CPU资源浪费,在事件处理机制中有以下几个概念:
事件源(EventSource):描述人机交互中事件的来源,通常是一些控件;
事件(ActionEvent):事件源产生的交互内容,比如按下按钮;
事件处理:这部分也在C++中被叫做回调函数,当事件发生时用来处理事件;
注:这部分在单片机中也是如此,中断源产生中断,然后进入中断服务函数进行响应;
清楚了这几个概念后,就来实现我们想要的功能,按下按钮是一个事件,那么,如何编写或者在哪编写这个事件的事件处理函数呢?在VS中很方便,只需要双击这个控件,VS就会自动将该控件的事件处理函数添加进Form1.cs文件,此处我先双击“Send”按钮,可以看到VS自动添加进了 private void button1_Click(object sender, EventArgs e) 这个方法,然后在里面编写代码,让文本框显示:这里所有的控件都是一个具体的对象,我们要通过这些对象设置其属性或者调用其方法;同样的道理,双击Clear按钮,添加文本框清空代码,完整代码如下:
//用户项目工程自定义命名空间HelloWorld
namespace HelloWorld
{
//定义了一个名称为Form1的公共类,并且在定义类的同时创建了一个这个类的对象,名为Form
//partial关键字
public partial class Form1 : Form
{
//与类同名的构造方法
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
//按下Send按钮
textBox1.Text = "^_^Hello,World^_^"; //文本框显示
}
private void button2_Click(object sender, EventArgs e)
{
//按下Clear按钮
textBox1.Text = ""; //文本框清空
}
}
}
至此,大功告成,第一个应用程序创建成功,点击启动按钮看下效果:
一、课程目标
本公司本着为工控事业培育和输出从电工基础到机器视觉的人才理念,着力于让小白成为工控业专家为目标。
大林上位机视觉软件培训专家特开设从电工基础、PLC、运动控制、上位机、工业机器人、机器视觉培训课程,为实现工业4.0事业而不懈努力。
机构课程全程真实教学、实干为主,不装逼,不扯淡,只唠干货,能做项目!!
二、老师介绍
大林老师
是专业从事上位机视觉软件的开发与培训,多年从事上位机机器视觉相关项目开发,对电气人员学习C#开发视觉软件有独到的见解,即使您是零基础或只要从事过电气自动化相关工作的学员都能够轻松快速学会。
三、校区介绍
大林上位机机器视觉培训机构,分为两个校区,苏州校区(苏州木渎),常州校区(常州新北)
四、硬件设施
校区提供2000多平方的实训基地,完美的设备硬件配套,可以做到边学习边操作,鉴于本机构隶属于某自动化公司,学员可以配合边学习边配合公司开发人员完成项目,这样学习起来事半功倍
五、毕业服务
学业完成后本公司可以择优录取,在我们自动化公司的实习,解决您的后顾之忧
六、课程对象
1.零基础无任何相关知识
2.有电气及PLC编程基础的更容易入手
3.需要系统性提升整体能力
4.跨行业转型
5.想拥有一份体面高收入
6.对自己前途迷茫
7.学历低英语不好
七、课程特色
为您量身提供零基础快速成为上位机及机器视觉软件开发专家的学习方案
承接企事业单位定制个性化学员集体培训。
八、课程内容
小白亦可通过学习成为工业软件开发专家,从电气图,到梯形图,到高级语言SCL,再到C#,突破高级语言难的瓶颈,轻松掌握。
从零开始,从电气基本元件入手,跟随课程递进学习,PLC,工业机器人,数据库,运动控制器,上位机,机器视觉,统统一网打尽。
欢迎亲临现场咨询,老师私人定制课程 ,学习更清晰!
九、授课方式
1、线下现场授课更直观,知识点更易吸收,现场互动更易理解和运用。
1,赠送老师录制课程随时随地轻松学习
2,赠送配套书籍不限环境随意学习
3,课间和课后答疑知识掌握更牢固
4,现场设备随意使用,人机结合熟练运用,加深知识理解。
5,老师指导完善简历,轻松上岗。
2、线上视频录播课程-整套
1,赠送配套书籍不限环境随意学习
2,售后答疑轻松解答
3,福利:线下报名课程原价抵扣
3、 线上视频课程+现场设备实操
1,赠送配套书籍不限环境随意学习
2,售后答疑轻松解答
3,现场和课后答疑知识掌握更牢固
4,现场设备随意使用,人机结合熟练运用,加深知识理解
5,福利:线下报名课程原价抵扣
苏州上位机与西门子200SMARTPLC编程培训_苏州上位机与西门子S7_1200PLC编程培训_苏州上位机与西门子S7_1500PLC编程培训_苏州上位机与西门子SCL编程培训_苏州上位机与三菱PLC全科培训_苏州上位机与三菱PLC编程培训_苏州上位机与三菱FX系列编程培训_苏州上位机与三菱PLC编程培训机构_苏州上位机与三菱PLC培训学校_苏州上位机与三菱FX3UPLC编程培训
苏州上位机与三菱FX5UPLC编程培训_苏州上位机工业机器人编程培训_苏州上位机与ABB工业机器人编程培训_苏州上位机与六轴机器人培训_苏州上位机与四轴机器人编程定位培训_苏州上位机与Epson机器人培训_苏州机器视觉软件开发培训_苏州CCD机器视觉培训_苏州机器视觉软件框架开发培训_苏州工业机器视觉培训
版权所有:江苏和讯自动化设备有限公司所有 备案号:苏ICP备2022010314号-1
技术支持: 易动力网络