目录
1 OPC客户端编程,客户端配置 (5)
2 硬件接线 (4)
3 主要功能 (4)
4 程序执行顺序 (5)
4.1T1系统扫描周期1.0MS (5)
4. 1.1 1 TDC程序自动加载,程序初始化 (5)
4. 1.2 2 T1_ANALOG_IN模拟量输入 (5)
4. 1.3 3 T1_Signal_Process信号处理(轧制力/液压选择、咬钢信号、落底位置TSAVE) (7)
4. 1.4 4 T1_RELA_AGC 相对AGC计算 (9)
4. 1.4.1 模块功能 (5)
4. 1.4.2 模块输入数据 (5)
4. 1.4.3 模块输出数据 (5)
4. 1.4.4 模块逻辑 (5)
4. 1.4.5 程序代码说明 (5)
1.V B.N E T基础知识
2.公共语言运行时C L R
图示
.NET结构
C#语言不能孤立对待,而必须和.NET Framework一起考虑
C#编译器专门用于.NET,这表示在C#中编写的所有代码总是在.NET Framework中运行
C#的结构和方法论反映了.NET的基础性方法论
在许多情况下,C#的特点语言特性取决于.NET的特性,或依赖于基类
1.1 .NET概述
理解.NET Framework最简单的方式是把它看作执行代码的环境
.NET承担了双重角色:管理代码的执行和为代码提供服务
.NET运行时:也称为公共语言运行时(Common Language Runtime)或CLR,它实际管理代码
受管制的代码:在.NET环境中运行的任何代码都称为受管制的代码(unmanaged code),.NET外部的其他代码也运行在Windows上
这些代码称为未受管制的代码(unmanaged code)
中间语言(IL):在.NET运行时加载和运行代码时,这种语言确定代码的位置
公共类型系统(CTS):为了实现语言的互操作性,必须有一组各种语言都认可的基本数据类型,这样才能对所有语言进行标准化
处理,CTS就提供了这个功能,还提供了定义定制类的规则
.NET基类:这是一个扩展的类库,它包含预先写好的代码,执行Windows上的各种任务
装配件:存储编译好的受管制的代码的单元
装配件高速缓冲存储器:存储共享装配件的磁盘区域
公共语言规范(CLS):确保代码可以在任何语言中访问的最小标准集合
反射:因为装配件完全自我描述,理论上可以编程访问装配件元数据,这种技术称为反射
Just-in-Time(JIT)编译:表示执行编译过程的最后阶段,即从中间语言转换为内部机器代码
装配件清单:存储包含元数据的装配件的区域
应用域:CLR允许不同代码在同一个过程空间中运行的方式
无用存储单元收集:CLR清理不再需要的内存的方式,应用程序不必负责内存的释放
1.2 编译和运行程序
在程序运行前必须编译,与以前的可执行文件和DLL文件不同,编译好的代码不包含汇编语言指令,而是包含Microsoft Interme
diate Language(MSIL或IL)指令,中间语言是一种相当低级的语言,可以快速转换为内部机器码(JIT编译) 过去完整的软件包有一个可执行程序,其中包含主程序的启动入口点,多个库或COM组建,而.NET中程序包含许多装配件,其中
一个装配件被指定为一个可执行程序,包含主程序的启动入口点,其他装配件则指定为库
运行程序时,.NET运行时会加载第一个装配件
代码中只有实际要使用的部分才会被编译,这个过程称为just-in-time编译
运行受管制的代码的优点:安全/垃圾收集避免内存泄漏/应用域使不同的程序在同一过程彼此独立又能彼此通信
1.3 中间语言
Java源代码被编译为Java字节代码,然后解释执行,而中间语言代码被编译为内部机器码则不会损失一些相关性能
中间语言的目的不仅仅是获得平台的独立性,而且要获得面向对象环境中的语言独立性
由于对语言独立性和交互操作性的需求,所以中间语言要比Java字节代码复杂得多,类和继承性是在中间语言中定义的
对中间语言的值类型,变量直接保存其数据,而对于引用类型,变量仅保存地址,对应的数据可以在该地址中找到
引用类型的实例总是存储在一个名为堆的内存区域中,值类型一般存储在堆栈中,但如果值类型在引用类型中声明为字段,它们
就内联存储在堆中
中间语言的一个重要方面是它建立在非常强的类型化功能上,所有的变量都清晰地标记为属于某个特定数
据类型
中间语言的主要特性总结:
1,具有类在单一继承实现的面向对象编程
2,接口
3,值和引用类型
4,通过异常来处理错误
5,非常强大的类型系统
1.4 语言的互操作性
COM是一个二进制标准,允许组件示例其他组件,调用它们的方法或属性,而无需考虑编写相关组件的语言
语言互操作性的真正含义是用一种语言编写的类应能直接与用另一种语言编写的类通信
公共类型规范的含义是中间语言有一组设计合理且内容丰富的预定义数据类型集
对于每种值类型,都有一个对应的引用类型来表示该类型的封箱(boxing)堆版本
公共语言规范(CLS)和公共类型系统(CTS)一起确保语言的互操作性
1.5 .NET基类库
.NET基类库是Microsoft已经编写好的一个内容丰富的受管制的代码类集合,它可以完成以前要通过Windows API来完成的绝大
多数任务
.NET基类包括:
1,IL提供的核心功能,例如,公共类型系统中的基本数据类型
2,Windows GUI支持,控件等
3,Web窗体(https://www.wendangku.net/doc/0914329003.html,)
4,数据访问(https://www.wendangku.net/doc/0914329003.html,)
5,目录访问
6,文件系统和注册表访问
7,连网和Web浏览
8,.NET属性和反射
9,访问Windows操作系统、环境变量等各个方面
10,访问不同语言的源代码和编译器
11,COM互操作性
12,制图技术(GDI+)
大部分.NET基类实际上都是用C#编写的
1.6 .Net Framework的组件
装配件是包含编译好的、面向.NET的代码的逻辑单元
可执行代码和库代码使用相同的装配件结构,唯一的区别是可执行的装配件包含一个主程序入口点,而库装配件则不包含
名称空间是.NET避免类名冲突的一种方式
应用域是分离组件的一种方式,它不会导致因在过程之间传送数据而产生性能问题
JIT编译器是.NET Framework的一个主要组成部分,也是Microsoft致力于确保受管制的代码比不受管制的代码的性能更高的
重要方面
Java字节代码是解释性的,而IL是编译性的
除了运行时的服务外,.NET还可以使用许多工具帮助开发.NET应用程序,包括:
1,Visual https://www.wendangku.net/doc/0914329003.html,集成开发环境
2,C#、https://www.wendangku.net/doc/0914329003.html,和C++命令行编译器
3,ILDASM检测装配件工具
无用存储单元收集器是.NET的内存管理方式,特别是它可以恢复正在运行中的应用程序需要的内存
让应用程序代码负责释放内存是低级、高性能的语言使用的技术,例如C++
.NET可以根据异常使用相同的机制处理错误情况,这与Java和C++是一样的
.NET提供的安全机制是基于代码的安全性,可以在运行代码前指定代码需要什么安全权限
属性最初是为了在程序中提供与某些项目相关的外部信息,以便编译器在编译时使用
在.NET中,属性新增内容是一个机制,该机制可以在定义自己源代码的属性地方存在,这些用户定义的属性将和对于数据类型
或方法的方法数据放在一起,在文档说明书中使用它们,和反射技术一起使用,以根据属性执行编程任务装配件存储了元数据,包括在装配件中定义的所有类型和这些类型的成员的细节,使用System.Reflection 名称空间中的.NET
基类可以编程访问这些元数据
1.7 语言和技术
C#是一种新的面向对象编程语言,专门用于.NET运行时
C#编译器只能生成受管制的代码,也可以使用.NET基类
C++有许多Microsoft对Windows的特定扩展,以后还要加入更多的扩展内容,来支持.NET Framework 现有的C++源代码会继续编译为内部可执行代码,不会有修改,但它会独立于.NET运行时
J++是为了继续支持向后兼容性才保留下来的,它没有升级到.NET上
至于以前的J++代码,Microsoft提供JUMP(Java User Migration Path)工具,其口号是“跳跃到.NET”
这些工具允许Visual https://www.wendangku.net/doc/0914329003.html,和现有的J++代码一起工作
还可以使用迁移工具,把J++代码自动转换为C#代码
Visual Basic在升级到.NET时,经历了一番脱胎换骨的变化,早期版本的Visual Basic 6并不适合于运行.NET 程序
ASP页面是孤立于.NET之外的,但是.NET升级了IIS以支持https://www.wendangku.net/doc/0914329003.html,页面,其中的代码可以直接使用https://www.wendangku.net/doc/0914329003.html,、C#或https://www.wendangku.net/doc/0914329003.html,
编写,并编译为类,通过生成相应的HTML输出,响应Web请求
脚本语言仍在使用之中,但一般认为它们的重要性在降低,VBA仍用作Office文档和Visual Studio宏语言
可以通过COM互操作性在受管制的代码中使用ADO或OLE DB,与数据源通信,这可能要比使用https://www.wendangku.net/doc/0914329003.html,
容易一些
https://www.wendangku.net/doc/0914329003.html,是.NET基类的一个子集,主要用于与数据源通信
.NET基类System.DirectoryServices用于替代ADSI,执行许多相同的功能,但仍可以使用旧的ADSI接口COM+仍然是一个重要的工具,即使其特性没有在.NET中完全实现
COM组件仍可以使用https://www.wendangku.net/doc/0914329003.html,组合了COM的互操作性,从而是受管制的代码可以调用COM组件,COM 组件也可以调用受管制的代码
1.8 把所有的功能都组合起来
除了just-in-time编译的最后一步外,所有的基本数据类型包装都是在编译时解开而不是运行期间解开的,所以在执行代码时
处理这些包装器不会导致性能损失
1.9 简史
C#主要考虑的是必要的OOP特性,它还具备语言的互操作性----在很大程度上甚至比COM更强大,C++的头文件已经删除,替代
以自我描述的装配件
3.变量和类型
4.对象语法综合
10.共享方法、属性、事件关键字:shared 例如Math 类大部分为共享方法
11.Ll
4.1 T1 系统扫描周期1.0ms
4.1.1 1 TDC程序自动加载,程序初始化4.1.2 2 T1_ANALOG_IN:模拟量输入4.3.
5.1 模块功能
4.3.
5.2 模块输入数据
4.3.
5.3 模块输出数据
4.3.
5.4 模块逻辑
4.3.
5.5 程序代码说明