关于西门子S7-200 PID编程学习心得

时间:2019-05-12 13:08:52下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《关于西门子S7-200 PID编程学习心得》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《关于西门子S7-200 PID编程学习心得》。

第一篇:关于西门子S7-200 PID编程学习心得

关于西门子S7-200 PID编程学习心得

1.注意区分输入端接的是电压信号还是电流信号;输出端是电流信号还是电压信号。在模拟模块上不同信号下的接线方式。

2.了解信号输入元件相关资料:

如使用温度变送器,要了解温度变送器测量范围,如0~100℃;输出电流范围4~20mA;分度号是什么,如PT100;接线原理图等。相关输入元件;输出元件在模拟模块上的接线方式。其他如工程要求的精度是多少等。

3.关于PID设定值(VD204)确认:

假定我们将控制温度定位23.5℃;以单极性为例,首先应确定输入信号是0~10V电压信号还是4~20mA电流信号?,这在PID设定值中非常重要。如是0~10V电压输入信号对应0~32000,温度范围0~100℃,设定值为可直接算出: VD204=23.5/(100-0)=0.235;

若是电流4~20mA,其对应数值应为6400~32000,温度范围0~100℃,则设定值应为0.388。

原因:模拟模块中0~32000对应0~20mA;其中6400~32000对应4~20mA对应0~100℃;这就必须进行相关的计算,23.5℃电流计算方式:

(20-4):(100-0)=(X-4):23.5;解方程:X=7.76(mA)。设定值:VD204=7.76/20=0.388.4.关于PID输出值(VD208)确认:

以单极性为例,应确定输出信号是0~10V电压信号还是4~20mA电流信号对应着0~32000?

若是输出信号AQW0对应电压信号,比如0~10V,则 AQW0=(实数VD208*32000在转化成整数)即可; 若是输出信号AQW0对应电流信号,比如4~20 mA,则 AQW0=(实数VD208*32000在转化成整数+6400)。5.关于PID恒温控制实际: 通过上机实验可知:PID恒温控制是围绕着设定值进行调节的。若设定温度为23.5℃;当温度低于设定值时,加温蒸汽调节阀始终处于全部打开状态,;当温度达到23.5℃,加温用的蒸汽调节阀开始逐渐关闭,在关闭过程中,温度有可能仍在渐渐上升,温度偏离越大,关闭速度越快;知道全部关闭为止;当温度再次低于设定值时,加温蒸汽调节阀则会逐渐打开,打开速度取决于温度偏离值的大小,偏离越大,打开速度越快;直到温度再次达到设定值。若温度长时间未达到设定值,调节功能会将调节阀全部打开,这就是我所观察到的PID恒温控制情况。所以,我们可以根据实控情况进行必要的编程,有效的利用低于设定值时PID控制时段;切断高于设定值部分的PID控制,在温度高于设定值后,即可根据生产要求干脆部分或全部关闭加温阀。以防温度上升过高。来求得优越的温控效果。

西门子SIEMENS S7-200CPU PID控

制图解之二

点击数:103 发布时间:2009年9月27日 来源:

常问问题

1做完 PID 向导后,如何知道向导中设定值,过程值及 PID 等参数所用的地址?

•做完 PID 向导后可在 Symbol Table(符号表)中,查看 PID 向导所生成的符号表(上例中为 PID0_SYM),可看到各参数所用的详细地址,及数值范围。

•在 Data Block(数据块)中,查看 PID 指令回路表的相关参数。如图所示:

图 12.PID 数据块

2、做完 PID 向导后,如何在调试中修改 PID 参数?

可以在 Status Chart(状态表)中,输入相应的参数地址,然后在线写入用户需要的 PID 参数数值,这样用户就可根据工艺需要随时对 PID 参数、设定值等进行调整。

3、PID 已经调整合适,如何正式确定参数?

可以在 Data Block(数据块)中直接写入参数。

4、做完 PID 向导后,能否查看 PID 生成的子程序,中断程序?

PID 向导生成的子程序,中断程序用户是无法看到的,也不能对其进行修改。没有密码能够打开这些子程序,一般的应用也没有必要打开查看。

5、PID 参数有经验值吗?

每一个项目的 PID 参数都不一样,没有经验参数,只能现场调试获得。

6、我的 PID 向导生成的程序为何不执行?

•必须保证用 SM0.0 无条件调用 PID0_INIT 程序

•在程序的其它部分不要再使用 SMB34 定时中断,也不要对 SMB34 赋值

7、如何实现 PID 反作用调节?

在有些控制中需要 PID 反作用调节。例如:在夏天控制空调制冷时,若反馈温度(过

程值)低于设定温度,需要关阀,减小输出控制(减少冷水流量等),这就是 PID 反

作用调节(在 PID 正作用中若过程值小于设定值,则需要增大输出控制)。

若想实现 PID 反作用调节,需要把 PID 回路的增益设为负数。对于增益为 0 的积分或

微分控制来说,如果指定积分时间、微分时间为负值,则是反作用回路。

8、如何根据工艺要求有选择地投入 PID 功能?

可使用“手动/自动”切换的功能。PID 向导生成的 PID 功能块只能使用 SM0.0 的条件 调用。

PID Wizard 中的给定-反馈设置

完成 PID Wizard 组态后,会为每个 PID 回路生成一个子程序 PIDx_INIT(x = 01.0 之间的实

数,而可以是实际的反馈地址,或是其他变量。例如,PV_I 可以是模拟量输入地址

AIW0,也可以是存储器地址 VW100 等;Setpoint 则往往来自 V 变量存储区,这样可以

从人机操作界面(HMI)设备输入给定值。注意:对于 PID 控制系统来说,必须保证给定与过程反馈的一致性: •给定与反馈的物理意义一致

这取决于被控制的对象,如果是压力,则给定也必须对应于压力值;如果是温度,则 给定也必须对应于温度。•给定与反馈的数值范围对应

如果给定直接是摄氏温度值,则反馈必须是对应的摄氏温度值;如果反馈直接使用模

拟量输入的对应数值,则给定也必须向反馈的数值范围换算。如果给定与反馈的换算有特定的比例关系也可以。如给定也可以表示为以反馈的数值 范围的百分比数值。

给定与反馈的数值具体是什么数值,其取值范围究竟如何,完全取决于我们在使用

“PID 向导”编程时指定的给定与反馈的数值范围。其中,反馈量的数值范围不能随

便自己定义,而要取决于具体应用的模拟量输入模块。图 2.在图中 a.处设置给定范围 图 3.在图中 b.处设置反馈范围

假定一个 PID 控制系统的控制对象是压力,反馈元件的测量范围为 020mA(或 41200.0 °C。则

可按如下设置给定的范围。

表 2.在上面的例子中,反馈和给定可以按照如下方法设置

图 4.反馈范围设置

图 5 给定范围设置

PID 自整定

新的 S7-200 CPU 支持 PID 自整定功能,在 STEP 7-Micro/WIN V4.0 中也添加了 PID 调 节控制面板。

用户可以使用用户程序或 PID 调节控制面板来启动自整定功能。在同一时间最多可以有 8 个 PID 回路同时进行自整定。PID 调节控制面板也可以用来手动调试老版本的(不支持 PID 自整定)CPU 的 PID 控制回路。用户可以根据工艺要求为调节回路选择快速响应、中速响应、慢速响应或极慢速响应。PID 自整定会根据响应类型而计算出最优化的比例、积分、微分值,并可应用到控制中。PID 调节控制面板

STEP 7-Micro/WIN V4.0 中提供了一个 PID 调节控制面板,可以用图形方式监视 PID 回路的运行,另外从面板中还可以启动、停止自整定功能。

图 1.PID 调节控制面板 在图 1 中: a.过程值指示 显示过程变量的值及其棒图 b.当前的输出值指示

显示当前使用的设定值、采样时间、PID 参数值及显示当前的输出值和棒图

c.可显示过程值、设定值及输出值的 PID 趋势图 A.过程变量和设定值的取值范围及刻度

B.PID 输出的取值范围及刻度 C.实际 PC 时间

D.以不同颜色表示的设定值、过程变量及输出的趋势图

d.调节参数 这里你可以:

o 选择 PID 参数的显示:当前参数(Current)、推荐参数(Suggested)、手动输入(Manual)

o 在Manual 模式下,可改变 PID 参数,并按 Update PLC 按钮来更新 PLC 中的参数 o 启动 PID 自整定功能

o 选择 Advanced(高级)按钮进入高级参数设定 e.当前的 PID 回路号

这里你可以选择需要监视或自整定的 PID 回路

f.时间选项设定

这里你可以设定趋势图的时基,时基以分为单位

g.图例颜色

这里你可以看到趋势图中不同的颜色代表不同的值的趋势 h.帮助按钮

i.PID 信息显示窗口

j.关闭 PID 调节面板

要使用 PID 调节控制面板,PID 编程必须使用 PID 向导完成。

PID 自整定步骤

第一步:在 PID Wizard(向导)中完成 PID 功能组态

要想使用 PID 自整定功能,PID 编程必须用 PID 向导来完成第二步:打开 PID 调节控制面板,设置 PID 回路调节参数 在 Micro/WIN V4.0 在线的情况下,从主菜单 Tools > PID Tune Control Panel 或点击进入 PID 调节控制面板中,如果面板没有被激活(所有地方都是灰色),可点击 Configure(配置)按钮运行 CPU。在 PID 调节面板的 e.区选择要调节的 PID 回路号,在 d.区选择 Manual(手动),调节 PID 参数并点击

Update(更新),使新参数值起作用,监视其趋势图,根据调节状况改变 PID 参数直至调节稳定。

为了使 PID 自整定顺利进行,应当做到:

•使 PID 调节器基本稳定,输出、反馈变化平缓,并且使反馈比较接近给定

•设置合适的给定值,使 PID 调节器的输出远离趋势图的上、下坐标轴,以免 PID 自整定开始后输出值的变化 范围受限制

参见:手动调整 PID 回路参数

图 3.设置 PID 自整定高级选项 在此允许你设定下列参数:

a.你可以选中复选框,让自整定来自动计算死区值和偏移值对于一般的 PID 系统,建议使用自动选择。b.Hysteresis(滞回死区):

死区值规定了允许过程值偏离设定值的最大(正负)范围,过程反馈在这个范围内的变化不会引起 PID 自整定调节器改变输出,或者使 PID 自整定调节器“认为”这个范围内的变化是由于自己改变输出进行自整定调节而引起的。PID 自整定开始后,只有过程反馈值超出了该区域,PID 自整定调节器才会认为它对输出的改变发生了效果。这个值用来减少过程变量的噪声对自整定的干扰,从而更精确地计算出过程系统的自然振动频率。如果选用自动计算,则缺省值为 2%。如果过程变量反馈干扰信号较强(噪声大)自然变化范围就大,可能需要人为设置一个较大的值。但这个值的改变要与下面的偏差值保持 1:4 的关系。c.Deviation(偏差):

偏差值决定了允许过程变量偏离设定值的峰峰值。如果选择自动计算该值,它将是死区的 4 倍,即 8%。有些非常敏感的系统不允许过程量偏离给定值很多,也可以人工设置为比较小的值,但是要和上述“死区”设置保持比例关系。这就是说,一个精度要求高的系统,其反馈信号必须足够稳定。

d.Initial Output Step(初始步长值):PID 调节的初始输出值 PID 自整定开始后,PID 自整定调节器将主动改变 PID 的输出值,以观察整个系统的反应。初始步长值就是输出的变动第一步变化值,以占实际输出量程的百分比表示。

e.Watchdog Time(看门狗时间):过程变量必须在此时间(时基为秒)内达到或穿越给定值,否则会产生看门狗超时错误。PID 自整定调节器在改变输出后,如果超过此时间还未观察到过程反馈(从下至上或从上至下)穿越给定曲线,则超时。如果能够事先确定实际系统响应非常慢,可以加长这个时间。

f.动态响应选项:根据回路过程(工艺)的要求可选择不同的响应类型:快速、中速、慢速、极慢速 o 快速:可能产生超调,属于欠阻尼响应 o 中速:在产生超调的边缘,属于临界阻尼响应

o 慢速:不会产生任何超调,属于过阻尼响应

o 极慢速:不会产生任何超调,属于严重过阻尼响应用户在这里指定需要达到的系统控制效果,而不是对系统本身响应快慢的判断。g.设定完参数点击 OK 键回到 PID 调节控制面板的主画面

第四步:在手动将 PID 调节到稳定状态后,即过程值与设定值接近,且输出没有不规

律的变化,并最好处于控制范围中心附近。此时可点击 d.区内的 Start Auto Tune 按

钮启动 PID 自整定功能,这时按钮变为 Stop Auto Tune。这时只需耐心等待,系统完

成自整定后会自动将计算出的 PID 参数显示在 d.区。当按钮再次变为 Start Auto Tune 时,表示系统已经完成了 PID 自整定。

要使用自整定功能,必须保证 PID 回路处于自动模式。开始自整定后,给定值不能再改变。

第五步:如果用户想将 PID 自整定的参数应用到当前 PLC 中,则只需点击 Update PLC。

完成 PID 调整后,最好下载一次整个项目(包括数据块),使新参数保存到 CPU 的 EEPROM 中。

PID 自整定失败的原因

1.PID 输出在最大值与最小值之间振荡(曲线接触到坐标轴)

解决方法:降低 PID 初始输出步长值(initial output step)

2.经过一段时间后,PID 自整定面板显示如下信息:“ The Auto Tune algorithm was aborted due to a zero-crossing watchdog timeout.” 即自整定计算因为等待

反馈穿越给定值的看门狗超时而失败。

解决方法: 确定在启动 PID 自整定前,过程变量和输出值已经稳定。并检查

Watchdog Time 的值,将其适当增大。

对于其它错误,可参考手册中表 15-3 中的错误代码的描述。如何获得一个稳定的 PID 回路 在开始 PID 自整定调整前,整个 PID 控制回路必须工作在相对稳定的状态。

稳定的 PID 是指过程变量接近设定值,输出不会不规则的变化,且回路的输出值在控制范围中心附近变化。问题与解决方法:

1.PID 输出总是输出很大的值,并在这一区间内调节变化

产生原因:

o 增益(Gain)值太高

o PID 扫描时间(sample time)太长(对于快速响应 PID 的回路)解决方法:降低增益(Gain)值并且/或选择短一些的扫描时间 2.过程变量超过设定值很多(超调很大)

产生原因:积分时间(Integral time)可能太高 解决方法:降低积分时间 3.得到一个非常不稳定的 PID

产生原因: o如果用了微分,可能是微分参数有问题 o没有微分,可能是增益(Gain)值太高 解决方法:

o调整微分参数到 0-1 的范围内

o根据回路调节特性将增益值降低,最低可从 0.x 开始逐渐增大往上调,直到获得稳定的 PID。

S7-200 PLC在PID闭环控制系统中的应用 引 言

在工业生产中,常需要用闭环控制方式来控制温度、压力、流量等连续变化的模拟量,无论是使用模拟量控制器的模拟控制系统还是使用计算机(包括PLC)的数字控制系统,PID控制都得到了广泛应用。PID控制器是比例-积分-微分控制(Proportional-Integral-De-rivative)的简称,其优点是不需要精确的控制系统数学模型,有较强的灵活性和适应性,而且PID控制器的结构典型、程序设计简单、工程上易于实现、参数调整方便。本文以西门子公司S7-200 PLC为例介绍PLC在PID闭环控制系统中的应用。PLC实现PID控制的方式

用PLC对模拟量进行PID控制大致有如下几种方法:

(1)使用PID过程控制模块:这种模块的PID控制程序是PLC厂家设计的,并放在模块中,用户使用时只需要设置一些参数,使用起来非常方便。

(2)使用PID功能指令:它是用于PID控制的子程序,与模拟量输入/输出模块一起使用,可以得到类似于使用PID过程控制的效果,但价格便宜得多。如S7-200的PID指令。

(3)用自编的程序实现PID闭环控制:在没有PID过程控制模块和功能指令的情况下,仍希望采用某种改进的PID控制算法,此时用户需要自己编制PID控制程序。

本文以西门子S7-200 PLC为例,说明PID控制的原理及PLC的PID功能指令的使用及控制功能的实现。PLC PID控制器的实现

3.1 PID控制器的数字化

PLC的PID控制器的设计是以连续的PID控制规律为基础,将其数字化,写成离散形式的PID方程,再根据离散方程进行控制程序的设计。

在连续系统中,典型的PID闭环控制系统如图1所示。图1中sp(t)是给定值;pv(t)为反馈量;c(t)为系统的输出量,PID控制器的输入/输出关系如式(1)所示:

式中:M(t)为控制器输出;Mo为输出的初始值;e(t)=sp(t)-pv(t)为误差信号;Kc为比例系数;T1为积分时间常数,TD为微分时间常数。等号右边前三项分别是比例、积分、微分部分,它们分别与误差、误差的积分和微分成正比。如果取其中的1项或2项,可以组成P,PD或PI控制器。

假设采样周期为TS,系统开始运行的时刻为t=0,用矩形积分来近似精确积分,用差分近似精确微分,将式1离散化,第n次采样时控制器的输出如式(2)所示:

式中:en-1为第n-1次采样时的误差值;K1为积分系数;KD为微分系数。

基于PLC的闭环控制系统如图2所示,图中虚线部分在PLC内,spn,pvn,en,Mn分别为模拟量sp(t),pv(t),e(t),M(t)在第n次采样的数字量。在许多控制系统中,可能只需要P,I,D中的1种或者2种控制类型。例如,可能只要求比例控制或比例与积分控制,通过设置参数可对回路控制类型进行选择。

3.2 输入输出变量的转换

PID控制有输入量2个:给定值sp和过程变量pv。给定值通常是固定值,过程变量通常是经过A/D转换和计算后得到的被控量的实测值。给定值和过程变量都是和被控对象有关的值,对于不同的系统,它们的大小、范围与工程单位有很大的不同。应用PLC的PID指令对这些量进行运算之前,必须将其转换成标准化的浮点数(实数)。同样,对于PID指令的输出,在将其送给D/A转换器之前,也需要进行转换。

3.2.1 回路输入的转换

首先,将给定值或A/D转换后得到的整数值由16位整数转换为浮点数,可以用下面的程序实现这种转换:

然后,将实数进一步转换成0.0~1.0之间的标准数,可用式3对给定值及过程变量进行标准化:

式中:RNorm为标准化实数值;RRaw为标准化前的值;offset为偏移量,对单极性变量为0.0,对双极性变量为0.5;Span为取值范围,等于变量的最大值减去最小值,单极性变量的典型值为32 000,双极性变量的典型值为64 000。

下面的程序将上述转换后得到的AC0中的双极性数(其中span=64 000)转换为0.0~1.0之间的实数的转换程序为:

3.2.2 回路输出的转换

回路输出即PID控制器的输出,它是标准化的0.0~1.0之间的实数。将回路输出送给D/A转换器之前,必须转换成16位二进制数,这一过程是将pv与sp转换成标准化数值的逆过程。

用下面的式(4)将回路输出转换为实数:

式中,RScal是回路输出对应的实数值;Mn是回路输出标准化的实数值。

将回路输出转换为对应的实数的程序为:

将代表回路输出的实数转化为16位整数的指令为: PID指令及其回路表

S7-200的PID指令如图3所示。

指令中TBL是回路表的起始地址,LOOP是回路编号。编译时如果指令指定的回路表起始地址或回路号超出范围,CPU将生成编译错误(范围错误),引起编译失败。PID指令对回路表中的某些输入值不进行范围检查,应保证过程变量、给定值等不超限。回路表如表1所示:

过程变量与给定值是PID运算的输入值,在回路表中他们只能被PID指令读取而不能改写。每次完成PID运算后,都要更新回路表内的输入值Mn,它被限制在0.0~1.0之间。

如果PID指令中的算术运算发生错误,特殊存储器位SM 1.1(溢出或非法数值)被置为1,并将中止PID指令的执行,想要消除这种错误,在下一次执行PID运算之前,应改变引起运算错误的输入值,而不是更新输出值。PID指令编程举例

温度控制是工业生产过程中很重要的一种控制。温度控制系统一般具有大惯性、大延时的特点。在工业控制中,难以建立温度系统的精确数学模型,而应用模拟或数字式PID闭环控制往往能获得较好的控制精度。

本例采用PID控制器,温度给定值经标准化处理后为0.8,选取控制器参数初值为:Kc=0.2,Ts=0.05 s,TI=20 min,TD=10 min。控制程序如下:

结 语

本文针对西门子S7-200 PLC在PID闭环控制系统中的应用,介绍PID数字控制器的原理、实现方法和编程实例。需要指出的是,PID控制算法具有很强的灵活性,根据被控对象特点的不同,可以使用PI控制、PD控制、PID控制等多种形式,从而达到更好的控制效果。随着智能控制技术的发展,PID控制与模糊控制、神经网络控制等现代控制方法的结合,可以实现PID控制器的参数自整定,使PID控制器具有经久不衰的生命力。

第二篇:西门子300PLC学习心得

【例 2-2】压力变送器的量程为0~10MPa,输出信号为4~20mA,模拟量输入模块的量程为4~20mA,转换后的数字量为0~27 648,设转换后得到的数字为N,试求以kPa 为单位的压力值。解:0~10MPa(0~10 000kPa)对应于转换后的数字0~27 648,转 换公式为

P = 10 000 × N / 27 648(kPa)

注意在运算时一定要先乘后除,否则可能会损失原始数据的精度。

【例 2-3】某发电机的电压互感器的变比为10kV/100V(线电压),电流互感器的变比为1000A/5A,功率变送器的额定输入电压和额定 输入电流分别为AC 100V 和5A,额定输出电压为 DC ±10V,模拟 量输入模块将DC ±10V 输入信号转换为数字+27648 和-27649。设转 换后得到的数字为N,求以kW 为单位的有功功率值。解:根据互感器额定值计算的原边有功功率额定值为 ×10000 ×1000 = 17321000(W)= 17321(kW)

由以上关系不难推算出互感器原边的有功功率与转换后的数字之 间的关系为17321/ 27648 = 0.62648 kW / 字。转换后的数字为N 时,对应的有功功率为0.6265 N(kW),如果以kW 为单位显示功率P,使 用定点数运算时的计算公式为

P = N × 6 265 / 10 000(kW)

【例 2-4】用于测量锅炉炉膛压力(−60 Pa~60 Pa)的变送器的输 出信号为4~20mA,模拟量输入模块将0~20mA 转换为数字0~27 648,设转换后得到的数字为N,试求以0.1Pa 为单位的压力值。解:4~20mA 的模拟量对应于数字量5 530~2 7648,即−600~600(0.1Pa)对应于数字量5 530~27 648,

第三篇:软件编程学习心得

软件编程学习心得

随着计算机技术的发展和工作的需要,为了能够更好的维护公司生产管理系统;公司安排我们到北大青鸟APTECH进修。我们选择了时下最流行、发展速度较快的语言C#。C#学习共分三个阶段,目前我只学习了第一个阶段;现将我在北大青鸟学习第一阶段为期两个月的学习心得总结如下:

C#是一种新的面向对象的编程语言,专门用于.NET运行时。C#编译器只能生成受管制的代码,也可以使用.NET基类。C#语言自C/C++演变而来。但是,它具有简单、现代、完全面向对象和类型安全等诸多特性。下面就简单说说简单和现代其中两种特性。

1、简单

C#具有C++所没有的一个优势就是学习简单。该语言首要的目标就是简单。很多功能(还不如说是缺少了C++的一些功能)有助于C#全方位的简单。

在C#中,没有C++中流行的指针。默认地,您工作在受管理的代码中,在那里不允许如直接存取内存等不安全的操作。我想没有C++程序员可以声称,从没有使用指针访问过不属于他们的内存。

C#弃用其它操作符,名字空间、成员和引用仅使用单个操作符 “.”。现在一个程序员所需要理解的就是嵌套名字的注解了。

C#使用统一的类型系统。这种系统充许您把各种类型作为一个对象查看,它是一个原始类型还是一个full-blown 类。和其它编程语言相比,由于加框(boxing)和消框(unboxing)的机制,把简单类型当作对象处理并不能获得性能的改善。稍后将详细解释加框和消框,但基本上仅当需要时才使用对象访问简单类型这种技术。

2、现代

投入学习C#的努力是一笔大投资,因为C#是为编写NGWS 应用程序的主要语言而设计。很多用C++可以实现或者很费力实现的功能,在C#中不过是一部分基本的功能而已。根据应用程序的特殊需求,可以很容易地创建出新的一种数据类型。

指针不再是编程武器的一部分。运行时NGWS提供了一个垃圾收集器,负责C#程序中的内存管理。因内存和应用程序都受到管理,所以很必要增强类型安全,以确保应用的稳定性。

异常处理是C#的主要功能。C#的异常处理与C++的不同点在于它是交叉语言的(运行时的另一个功能)。在没有C#之前,您必须处理怪异的HRESULTs,但现在由于使用了基于异常的健壮的出错处理,这一切都结束了。

对于现代的应用程序,安全是首要的,C#也不会例外。它提供了元数据语法,用于声明下述NGWS安全模式的能力和许可。元数据是NGWS运行时的一个关键的概念。

通两个多月学习,我能够很好的掌握C#语言的基本语句、语法以及老师补充的一些要点;能够编写简单的应用程序,例如电子邮件的收发等,为接下来的第二、第三阶段学习打下了良好的基础。

第四篇:编程语言学习心得

程序语言学习的总结

通过两年的学习,我们基本上掌握了C语言,C++和C#三个编程课程。对于程序设计语言的学习,分为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。课程上的安排除了课堂讲授以外,学院设有专门课堂到实验室进行上机操作实验。

要利用c语言学到的知识编写c语言程序,即把c语言作为工具,通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。通过上机实验来验证自己编制的程序是否正确。在这种思想支配下,可能你会想办法去“掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。

在原有的C语言的基础知识之上,初步接触C++时感到比较简单易懂。但随着之后的步步深入学习,C++的不同之处以及其优势逐。从第二章引入了C++简单程序的设计。包括一些C++语言的概述,基本数据类型和表达式,数据的输入与输出,算法的基本东芝结构,以及自定义类型数据等知识。此部分多与C语言相似。之后又学习了函数的相关内容,这里学到了新的知识要点----函数重载。该内容尤其在现在做课程设计的时候尤为重要。类是C++语言的精华之所在,在学习中,我感觉到类和C语言中的结构体有很大的相似之处,但在类中的构造函数、拷贝构造函数以及类的组合,经常弄混淆一些概念。在这之后又学习了类的继承与派生。这使得类与类之间形成了树状图的模型,各子类可以访问到父类的一些数据成员,同样也实现了数据的之间的“共享”。我个人在编写派生类的构造函数和拷贝构造函数时,感觉很不熟练,后面章节的多态性主要学习了运算符的重载,其本质就是函数的重载。

在学习C#中,类是具有相同特性和行为的对象的抽象。它使用关键字class声明的。在c#中仅允许单个继承,类只能从一个基类继承实现。但是一个类可以实现一个以上的接口。对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等局可以看对象,它不仅表示具体的事物,还能表示抽象的规则、计划或者事件。接口只是包含方法、委托或事件的签名。方法的实现是在实现接口的类中完成的。接口可以是命名空间或类的成员,并可以包含下列成员:每个C#可执行文件都有一个入口—Main方法:static void Main()修饰符public表示可以在任何地方访问该方法。所以可以在类的外部调用它。修饰符static表示方法不能在类的实例上执行,因此不必先实例化类在调用。在变量声明时:变量是类或者结构中的字段,如果没有显示初始化,创建这些变量时,其值就是默认的0。变量是方法的局部变量就必须在代码中显示初始化,之后才能在语句中使用它们的值。

课堂上要讲授许多关于语法规则,要使用这些工具解决问题,通过多次上机练习,对于语法知识有了更深刻的认识,在理解的基础上就会自然而然地掌握。一个程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。通过上机实验,熟练地掌握开发环境,为以后真正编写计算机程序解决实际问题打下基础。

第五篇:编程学习心得和方法

雪中悍刀行 http://bmdqw.com/

编程学习心得和方法

说到编程,很多人首先会想到C、C++,JAVA,DELPHI。没错,这些都是现今最流行的计算机程序语言,它们各有特色。然而事实上是,不为人知而且比它们更好更出色的语言有很多。它们得以流行的原因有很多,其中最重要的一点是,它们在计算机语言的发展历史上有重要的划时代意义。特别是C的出现,将软件编程引入了真正的可视化编程。很多新语言的出现,解决了当时不能解决又不得不解决的问题。

另外,这些语言的确是出色的,它们不但易学,更是易用,这也是它们得以流行的一大原因。大家的支持,和个别系统和开发公司对它们的支持,以及它们的开发组件和类库众多和广大推广的原因,也使得它们当今数一数二的计算机语言。

编程语言不只有这些,计算机语言还有很多分类,其中,网络编程也属于其一。广为人知的编程语言有ASP,JSP,还有PHP。当然,还有脚本语言,比如ASP用的VBscript,还有在客户端流行的Javascript。其中,ASP(asp.net)基于VB(vb.net),JSP基于JAVA。现今已经发展出各种各样的编程语言,并且,它们大多采用了英文编写,单是关键字和标准类库就要我们花时间去记忆和识别,最后,还得去灵活运用更多的东西。所以,我们想一次性学习它们,这是不可能的事情,尽管大多语言很相似,你也不可能做到的。事实上,很少有人能够学习全部,大多都只能擅长某一种。

即便是高级编程人员,像那些为开发软件工作的类库和组件高手,他们也不敢说自己精通每一种语言。事实就是这样,每一种语言有着它们相似而又不同的语法,它们有着不同的关键字,发展出了各种各样的类库,它们的函数或者方法的声明定义都有不同,更多的差异不为我们所知。

每一种语言,它都有着太多的东西需要我们去理解和记忆,我们没有时间和精力做得太多。对于初学者,我们最不应该急于求成,更不要试图一次性学习所有语言。事实上,我们可以选取某种语言学习。每一种语言都有着自己的强大功能,好的语言能够完成所有事情,所以,你不要担心学习一种语言不够全面这样的问题。

当你能够得心应手掌控你学习的一种语言后,你回过头来再去学习其他语言时,你可能会发现,原来,这些语言是那么的相近。这个时候,你再去学习它们,我想,那真是很愉快的事情,大概,那个时候,你会笑出声来。

我们知道,从某种意义来说,各种语言都有很多类似的地方,这大概是因为所有的语言开发都是基于已有语言创造的,开发者也出于对大家的尊重,考虑到易于学习等等原因,他们选择了几乎是相同的语法来定义这些新语言。可以说,所有语言都是基于已有语言开发的,没有人能够聪明到突发其想,更不可能一夜之间发明出一种完全不同的外星语。

基于语言再开发语言,这么做能给使用者带来了一次学习,全部学会的好处。当然,最

大的好处莫过于新的语言肯定比之前的语言更加好用简单,功能也更全面强大。某种意义上讲,开发新的语言就是在更新旧语言的错误和不足,最后发展出新语言。

其实,每一种语言的区别大多只在于关键字的区别,还有一些语法上的区别。事实就是这样,很多语言之所以不同,就因为它们的关键字不同。就像你吃饭一样,中国人用筷子,外国人却不是。这些都没有改变吃饭的实质,我们都能完成一样的事情,那就是吃饭。说了这么多,话题也扯得太远了,回过头来吧。说了这么多,我无非是想说,所有的计算机语言都是相通的,你只要学会一种,学习其他的就是轻易而举的事情。所以,你用不着同时学习几种语言。

如果你不按照我的建议这么做,我想劝告你,你将会一样也学不会,至少,你永远不能擅长于编程,更别说精通。每一种语言都是经历了无数年代,最后由开发者总结而来,不是一个人能够轻易学完的,事实上,每一种语言都有开发和支持它们的公司和软件,每一天都有更多的新东西出现,你的时间不应该花在学更多的语言,应该是学习它们的变化。

现在的软件开发早已经不再是手工编程那么复杂化了,大多情况下,我们只要会语法,只要知道类库和开发软件支持的类库和组件,我们就能够编程,但这都只是开发,说不上什么精通不精通。用软件开发软件做软件,很像拼图和画画,你只要学会画就行。

你如果只想开发软件,忽略了语言的基础,我想说的是,你的软件永远不会更好更快。即便如此,你也得花时间去学习你所要用的开发软件的一切,包括那些扩展的组件和类库。另外,请不要忘了,软件开发出来后,还得改进,你是否能够让软件更自动化,能够自己检查错误,也或者,你能让它多线程工作呢?

其实,我们很难在不同的语言相似中区分它们的异同,也不可能同时掌握相同功能下,却有着不同的类库和不同的实现方法中去运用自如。

好了,我现在要说说学习编程的一些简单方法和步骤,今天将是第一章,也是一个开始。大概,你可能会用上小半年的时间去学习它,也或者更久,我希望是这样。

首先,我们应该学习一下计算机的基础,包括硬件基础,特别是计算机的各种发展史。之后,我们要理解计算机的工作原理,我们得知道,计算机依靠什么方法进行运算。

如果一个软件开发者,他开发了众多软件后,回过头还不知道计算机原理,那真好笑的事情,真不知道,他是怎么做软件的。当然,这样的人或许比我们聪明多了,因为他知道什么重要,什么次要。当今的社会,专业才是真,每个行业都有无数学习对象,你能全部学会吗?

其次,你应该着手学习汇编。或许,有人认为这是乎过早了一点。的确,你很有可能会无从下手,这个时候,你可以先大致了解一下,跳过这一步,往后再来学习。

之后,你应该做的是,选择自己想学的语言,或许,应该在C(c++)或者JAVA之间选择一种。当然,你要是只学习网络编程,可以在ASP和PHP之间选择,至于Javascript之类的脚本,你可以最后来学习。

你已经选好要学习的语言了吧?现在,就去选择几本上好的相关基础书籍吧。照我说的去做,你只能选择最为基础的只介绍语法的书,这个时候,你可千万别去看软件设计的书,也别去动那些设计软件。这一点,你千万要做到,朋友,不要急于求成。

好了,选好了书籍了吗?你的书籍一定是最为基础的才行,确定这些后,你应该看书了,对了,看的时候还得记下笔记,最好能够把每一个知识点记下,特别是关键的东西。这个过程是很难熬的,你千万不要急躁,另外,你如果从来没有接触过编程语言,你就更应该慢慢来,你应该花上半天时间学习一个章节。或者,之后的几个章节,你得花上更多时间。我想告诉你,朋友,越到后面越难,编程可不是吃饭那么简单,每个人都得花上很多年的时间学习它。

这个过程中,你还得注意,千万不能跳过看不懂的东西,是的,你可以到网上也或者是找朋友请教,这是很好的办法。只有当你弄明白了一个知识点后,你才能继续学习。也不要急着就学习用开发软件做软件,千万记住这一点。你现在是在学习语法。是的,语法这一关,你得用心,而且得认真对待,还得过关。你想不种豆就有豆子收,世上可没这种好事情,除非你偷别人的,那还是自己的吗?更何况,你是要为自己学习。收获都是要时间的,成熟都需要时间。现在,趁你还在学习语法的时间,你们来简单提一下语法吧。

关于基础语法,大概有几个方面,当然了,每种语言各有不同,不过,大体都一样。

一、语言本身的发展史和特点

其实,这一点,在我们选择某种语言的时候就应该提前了解。我在这里只想给大家说说自己的心得。

其中,JAVA的好处,一次编写,永远运行。它的最大好处不只这些,大家最喜欢的是,它可以在不同的环境下工作。是的,它不只是在计算机上能够运行,它同样能够在数码产品上运行,只要相应的机器上有JAVA虚拟机,JAVA软件就能运行,而且我们不必为不同的机器而修改我们的软件源码。

JAVA这个语言是九十年代才出现的,它由SUN公司开发,它的发展也算是飞快的。它的设计初衷是要在网络上应用。然而,它却不巧的成为了能够运行在更多环境下的语言,可以说,也正因为这一点,它才得以流行。当然,它的确也成就了网络,它的出现为网络编程带来了更多的功能和应用。

事实上,当今的网络应用中,JAVA、FALSH、JS、ActiveX这些小程序或者说是脚本插件,它们真是功不可没。另外,JAVA小程序比其他脚本或者插件都要安全,因为它的运行都在虚拟机下完成,不允许超越出去操控机器本身。

JAVA已经发展到了JAVA2,它已经深入计算机编程,特别是同时应用在网络和数码产品上。没什么好说的,它和C很相似,事实就是,它是基于几大语言开发的,它去除了许多语

言中难懂的语法。特别是,它没有了指针,它还能自己检测错误。

如果你觉得C太难,又想制作可以在数码产品上运行使用的软件,比如NOKIA手机的S60系统下的软件什么的,可以学习JAVA。

至于C语言,现在已经有三个版本,C、C++、C#。多的不说,这个语言是现在的主流,大多软件都靠它。三种版本的区别在于,第一个主要是采用旧式的结构化模式编写,C++最大特色是面向对象,至于最后的C#,它基于.net。

C语言成功之处在于,它的出现,简化了软件开发流程,易于学习和编写,另外,它最大的特点在于,它既是基础语言,又是高级语言,或者说,它就是中级语言。作为基础,它能够操控基层的东西,比如内存、计算机硬件本身。事实上,很多硬件驱动都由它制作而成。另外,UNIX的内核曾经都是用它做的,可见它非同一般。可以说,C几乎能够完成所有的计算机功能,当然,不是太绝对。对于一些更基础的东西,大多用汇编搞定。另外,你还得明白这么一点,越是基础的东西,要用更加基础的语言去实现。各种数码电器包括电脑系统都不会用这些高级语言编写,有着更深的东西不为人知,我们只有继续学习才能搞精这一切。现在,我们只要学习自己的语言就行。

以这里,我还得说说VC,当然,还有VB。事实上VC和VB是微软公司的产品,我个人认为,VB就是在C的基础上产生的。C语言可以轻松更改成其它语言,这也是它很厉害的一个地方。事实上,像大多的基础语言一样,C的本身语言特点让它有这样的能力这么做。我们能够用C的一些关键字设计出各种函数和库,它们当然可以和VB和其他语言的函数和类库同名,某种意义上说,就因为语言之间的类似造就了它们之间的相互转化。

同样的,它也能像高级语言一样工作,前提就是,你要自定义自己的函数库和类库。这一点,就是学习编程语言的难点之一。

VC和VB已经发展成了.net版本,ASP就是从VB而来,如今,也有了ASP.net。

很多初学者大概不知道VC和VB是什么,事实就是,它们是微软的软件,很简单,它们只是软件。这么理解大概会好一些,是这样吧。

C语言的开发软件有很多,最著名的莫过于VC++_NET和C++BUILDER,是的,C语言并非某个公司和个人的专属产品。

DELPHI,这个语言可能没有C和JAVA出名,但事实上,它是一种很不错的高级语言,能够制作各种软件,而且它比我们想象中更加简单。DELPHI属于BOLAND公司的产品,开发软件是DELPHI BUILDER,是的,BOLAND公司的开发软件一直被人们称道,这是因为,它为我们提供了各种各样的组件,可以说,我们只要半天时间就可以用BOLAND公司的软件轻松做出功能强大的软件。包括C和JAVA BUILDER。

VB并不是语言,我把它单独列出来,只是说,我们可以单独学习它来制作软件。事实上,不少的游戏都由它开发,可见它的功能比想象中强大。还有一点,它和BORLAND公司的开发软件真是太像了,它给大家提供了很多基于WINDOWS的组件,可以超快开发软件。如果是学习网络编程,你可以选择ASP或者PHP,也或者JSP。ASP(NET)的特点是,它出自微软的VB,用VBscript脚本以及VB(DLL)的ActiveX组件构成。它需要运行在安装了IIS的WINDOWS服务器上。ASP(NET)站点的最大好处在于,可以在任何可以显示的浏览器上正常动作,所有的脚本代码运行和数据处理都在IIS服务器上完成,我们不必担心客户端是否支持的问题。另外,ASP源码不会传到客户端,某种意义上可以防止别人看到你的代码。学习ASP,你还得慢慢学习ActiveX组件,有的人可能会感到惊讶,比如数据库连接或者分页功能,在ASP看来,实现这些东西真是太过简单了。也有的人会搞不明白,为什么语法里没有这些东西,ASP上却有这些,事实上,朋友,ASP支持DLL组件,也就是说,只要你是编程高手,你可以用其他的开发软件,比如VB,为你的ASP自创组件。

组件很像编程中的类库,一般来说,我们不必去细验它们是什么,又怎么工作,我们只要去运用它就行。现在的情况就是,各种语言都有第三方的支持,也就是组件和插件,你可以从别的公司或者网上获取,这样的好处在于,你不必自己编写更多的东西,却能够用别人的成就完成各种工作。比如上传文件和下载等等。

好了,关于怎么做组件什么的,你可以学习编程。但如果是聪明人,你不会这么做,因为你没有时间和精力学太多。要知道,你要吃饭,最多是自己种地买碗筷,你用不着自己造碗筷,更用不着去管什么桌子凳子。只要你会工作,用钱就能搞定一切。编程也是这样,你只要会用就行,除非你真把自己当博士,也或者,你还真想什么都弄精,那不成了神精,或者当神仙或者机器去吧,凡人是没那本事了,你不过几十年的光阴可以用耶。

学习就是学习精要,而不是概要;学习更不是全面,而是专业。八十年代出生的人大多受了蒙蔽,人人只知道当科学家或者天才,也或者都想做事完美。告诉你,完美过气,要完美的,回家种地去吧。

关于PHP和JSP,我个人不是很懂,所以,我不会过多提及。

另外,学习网络编程的朋友,你得选去学习一下XHTML标准,你也要按照这个标准行事。你也不要只学会用网格做网页,要知道,现在大多数情况下在抛弃它了,我们用CSS实现更多功能。

学习是一步步来的,现在,你只管学习语法,在后面,我会提示你怎么做的,每一步,我都有介绍。

另外,不知道有人是不是误会我的意思了,网络编程,可从来没有说,像HTML或者网页设计属于这个范畴。所以,连HTML都不懂的,先回去学习网页制作和设计吧。当然,没必要还学什么FLASH,你又不当美工。当美工的,还是不要学网编的好,学得多了,小心你什么都不精。告诉你,专一才能研究直到精通。

二、数据类型,变量,常量,数组

数据类型是最为基础的语法,每种语言都有相似或者相同的数据类型。我们应该理解什么是数据类型,也就是学习和记住所学的语言里包含哪些数据类型。从某种意义上说,数据类型属于简单的类。

每种语言的数据类型有所不同,你只需记住自己学习的语言的类型定义就行了。通用的基础常用数据类型有字节型、整型、字符型、浮点型、双精度型、布尔型。当然,数据类型还有更多。

其中的C、C++里面,有些类型在不同的系统里有不同的范围,比如在32位和64位系统里,有2字节和4字节长度范围区分。

变量和常量,还有数组,各种语言都基本相同,你只用记住如何声明和初始化。另外,你得养成先声明再初始化的习惯,这符合更多语言的变量声明语法,也更为标准,不易出错。另外,变量的声明要符合标准,不能用关键字做变量名,一般来讲,变量只能以字母开头,还只能是字母、数字和下划线构成。有的语言区分大小写,千万注意这个问题。

另外,变量还有局部和全局之分,你得搞清楚什么时候属于什么类型。局部变量只会局部存在,有的语言在某些范围内不能有重复相同的变量和局部变量,但有的语言却可以。我们要理解什么是数组,特别是多维数组。还有一点,数组的超始是零,认识到这一点是非常重要的。最后,字符串属于特殊的数组。

三、运算符

计算机语言的初衷就是用来计算,自然要有运算符。

最常见常用的自然是算术运算符,加减乘除。在这里,我们要记住递增递减,赋值运算,还有模运算。

位运算符:或,与,非,异或,各种位移。

位逻辑运算符:按位或,按位与,按位非,按位异或,关系运算符:大于,小于,等于,不等于,大于等于,小于等于

布尔逻辑运算符:逻辑或,逻辑非,异或,相等,不相等,三元运算符

赋值运算符:注意有的语言= 和==的区别

之后是运算符的优先级,我们可以用各种括号控制优先级,其实这和数字上的运算很相似。

四、程序控制语句

程序控制语句用于判断和跳转,其中最常见的有以下几种。

条件语句:if-else-if 在这里,有几种不同变化,大体相同

Switch(){case…break….default}

循环语句:do...while while {} for(;;)

跳转语句:Goto break continue return

五、其他。

在这里,我不再过多举例,其实,这里有最重要的东西没有讲,比如类,函数,继承,指针,异常处理,多态,多线程。这中间还有构造函数,解析函数等等。这些可以说是语法中的重点和难点,所有语言之所以成语言,也就是它们有着这些特性。

大概,你已经看完了几个章节内容。现在,你已经对编程有了基础认识。好了,你在这个时候,可以找两本简单事例的书籍了,你可以一边学习一边写程序。

是的,如果可以,你应该用记事本这样的工具来编程。当然,要在自己的电脑上运行你的程序还得安装好相应的软件,比如ASP(NET)的IIS,ASP.net 还得安装.net,JAVA的JDK,至于C语言,你可以安装VC,也或者C++BUILDER,这个时候,你就要学习如何配置自己的电脑并且如何运行这些程序。

千万不要被相应的软件吓住,是的,每种软件开发工具比你想象中还要复杂,告诉你,它们比看起来还可怕。不过,那只是现在的情况下,不用担心,总有一天,你能够轻易运用它们,到时候,不是它吓你,而是你吓它了。

你应该做的范例只是用来显示或者计算,如果是网络编程,你应该提前学习一下网络设计软件,像Dreamweaver。

(好了,今天就到这里,我想,下次再继续吧。欢迎到我的网站交流)

本文由整理。

下载关于西门子S7-200 PID编程学习心得word格式文档
下载关于西门子S7-200 PID编程学习心得.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    MFC编程学习心得

    //1、将C语言变量简单重新定义 UINT、INT(32位,4字节) LONG、DWORD(32位,4字节) WPARAM、LPARAM(32位,4字节) SHORT、WORD(16位,2字节) LONG、LRESULT BOOL(TRUE、FALSE) PINT PSTR、 LPS......

    西门子总结

    1、多个变量同时调用一个FB块,如何监控其中一个变量(以高炉程序FB204为例) (1)打开程序找到变量所调用的FB块(FB204),打开FB块在菜单栏找到DEBUG——>Opration-->Test Opration (2)D......

    MASTERCAM9.1车床编程学习心得(大全5篇)

    MASTERCAM9.1数控车床编程的初步印象 很多的说法都是这款软件很容易学,看样子也差不多是这样的了,我从一个星期前弄到它,便想尽一切办法学习,当然是从最初的学,可是对于作......

    西门子模块接线图(五篇范文)

    S7-300PLC与上位机之间的通信一般采用MPI通信方式,不需要STEP7软件组态,也不需要编写任何程序,只需在WINCC上对S7-300PL的站地址和槽号及网卡设置以及设置PG/PC接口设置为CP561......

    西门子冰箱致歉信

    安徽师范大学经济管理学院10级市场营销系朱圆 西门子冰箱致歉消费者 承诺问题冰箱召回 尊敬的消费者: 我是西门子冰箱中国区总裁。就西门子冰箱门关不紧的问题,给广大的消费者......

    【A051】西门子研究报告

    西门子公司研究报告 小组:A051 1 西门子公司研究报告 摘要: 西门子公司的产品在同类家电行业中占有较大的竞争优势。但是由于近期公司在家电方面的撤资和错误的降价促销导致......

    省人工智能和创意编程教学研讨会学习心得

    省人工智能和创意编程教学研讨会学习心得 博兴乐安实验学校刘凯月 11月28日到29日为期两天的人工智能和创意编程的教学研讨会学习活动结束了,我有幸参加了这次会议,活动内容十......

    C语言对单片机编程的学习心得

    很多朋友都在学习单片机或是想学单片机,但在看了一些资料后,要么感到不知道学的什么,要么找不到下一步的学习方法,这都很正常,因为单片机的学习是一项综全性知识的结果。那么怎样......