PLC初学者心得

2024-10-19 版权声明 我要投稿

PLC初学者心得(精选8篇)

PLC初学者心得 篇1

在此,我想粗略的总结一下自己的学习之路,供网友们参考。

1、编程需要坚强的毅力和足够的耐心

人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。毕竟编程工作是对人的毅力和耐心的挑战。我所在实验室中,很多学生看到我编程序就会惊讶于我面对这一堆堆符号所表现出的专注。其实,这是兴趣使然。兴趣使我具备了足够的毅力和耐心。经过无数次失败后,当看到一个个符号按我的思路整齐的排列,PLC按我的要求有条不紊的运行时,兴趣得到了极大的满足,如同打通了一个游戏的关口。所以,我告诉这些学生:你们看到的是一堆枯燥怪异的符号,我看到的却是一群热情奔放的舞者,而我则是她们的导演。

2、编程需要敢于实践的信心

我曾经教过一个学生学AutoCAD,我对她的唯一要求就是实践。我告诉她:你随便怎么操作,大不了一张图重画;最坏的结果是系统崩溃,没关系,系统重做,再来;只要电脑没被砸了,怎么都行。两年后,我再看到她做的CAD图纸,也自叹不如。

同样道理,只有不断地在PLC上运行这些指令,观察运行的结果,才能弄清PLC指令的作用。很多初学者对PLC一脸的迷茫,往往是出于一种畏惧,担心损坏设备。而这些畏惧是没有任何道理的。仔细的阅读手册是非常重要的,但是仅靠读书是成不了一个工程师的。更何况手册上的内容并非面面俱到。我在接触到那些不熟悉的指令时,喜欢单独编一个小程序,让PLC运行。然后逐个修改条件,观察运行的结果(MicroWin为用户提供了非常好的监控手段),反过来再重新理解手册的描述,这样就可以非常直观的理解这些指令的作用和使用方法。不必担心自己写的程序会有什么问题,会影响PLC的正常工作。程序有没有问题,只有让PLC运行了才能发现。而发现问题并解决问题就是对自己能力的提高。撇开硬件操作不谈,单就软件来说,我还真没有遇到过由于软件问题而损坏PLC的事。在这里不必担心继电器电路接错线可能造成的后果。所以,大胆的实践是PLC编程的必由之路。

当然,大胆实践并不是野蛮操作,而是必须遵循必要的规范。还有一个要注意的,在程序未经可靠性证实之前,千万不要挂接负载,以免造成不必要的损失。数字量的输出有LED显示;而模拟量处理可以采用一些硬件或软件模拟手段来解决。

3、编程需要有缜密的逻辑思维

编程本身就是一种逻辑思维过程。在高级语言中,使用最多的是ifthenelse、select这些条件判别语句,这就是逻辑中的因果关系。PLC程序就是由这些因果关系组成的:判别条件是否成立,进而决定执行相应的指令。最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。在PLC中,以虚拟触点代替了继电器的金属触点,而继电器电路所表达的逻辑关系还是被完整的保留

下来。即使引入了继电器电路难以胜任的数值处理过程,PLC从根本上还是在执行一个个因果关系。所以,理顺对象的各个事件之间的逻辑关系,是编程之前必须精心做好的准备工作。我在接到一项任务后,第一件事就是整理出一份逻辑关系图,与用户反复商讨,取得用户的认可,然后才真正进入程序的编写过程。

4、不可或缺的相关知识

PLC的程序是直接作用于对象的具体工艺过程,那么对对象具体工艺过程的理解是非常重要的的。我在与用户的交流过程中,会用我所掌握的UnitOperation的知识分析用户的工艺过程,协助用户整理过程控制中的各个逻辑关系,甚至包括各种仪表、硬件的配置。这得益于我原本所学的专业。当然,不能要求所有搞PLC程序的工程师都有我这样的经历。但是有两门知识却是不可或缺的:一是过程仪表的硬件知识,包括传感器、变送器(二次仪表)和PLC本身,这是构建控制系统的基础;二是过程控制理论,包括各种控制模型的原理和应用,其中最重要的是二位调节和PID调节模型。PID调节是目前用得最广泛的过程控制手段,且变化多端。学习PID最好的方法就是读书。几乎所有讲解过程控制的书籍都有关于PID的内容,多读基本相关的书籍对理解PID是很有益处的。我发现不少网友在进入PLC领域时,缺乏这些相关知识。这并不可怕;可怕的是当事者不能静下心来弥补知识的缺陷。我们不要怪罪学校没有教授这些内容,而是要注重自己如何去学习这些知识。工作中遇到的许多问题是学校里没讲过的,这不能成为我们拒绝工作的理由,而应该以积极的态度去应对这些问题。我的体会是,为了解决工作中的问题而学习的知识,比课堂上学的东西更容易记住。

5、养成良好的编程习惯

每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。一是理顺逻辑关系、时序关系,编制程序框图;二是合理分配主程序、子程序和中断程序;三是合理分配寄存器,编制寄存器符号表。

PLC编程更接近于单片机,或者说PLC就是模块化的单片机。因此PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,一定会出现不可预想的后果。编制寄存器符号表不仅可以避免上述问题(MicroWin会有问题提示),而且可以使程序具备更好的可读性。这和VB中定义变量有异曲同工之处。

VB编程中关注的是事件,不强调主程序和子程序的观念,因为VB主程序的工作是由PC的操作系统完成的。PLC则不然。PLC程序是以主程序为主干的,CPU不断的循环执行主程序,只有触发条件成立时才会调用子程序或中断程序。即子程序和中断程序所执行的任务不是全时需要的。如果把这些任务都放在主程序中会无端增加主程序的工作量,降低程序的效率。这点和单片机的编程思路是一致的。子程序的使用可以使整个程序的逻辑更清晰。而且子程序可以分开编写、调试,最后“安装”到主程序上。这样你可以一个一个解决问题。

PLC编程,无论是LAD,抑或STL,都不如VB那么直观、有趣,更不如CAD那么形象。但比单片机的汇编语言的可视性强多了。对于初学者,LAD(梯形图)的编程相对直观,更容易上手。

最后,PLC提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。

看到不少新手的帖子,感觉得到楼主着急的心情,特别是遇到跟书上理论不相符的现象更是上火。

鉴于此,“曾经的新手”给正在准备入门的学弟们介绍几点经验。

1、先通读一遍“系统手册”(不管能不能看懂,先了解个大概,以便学习编程时查找);

2、由位控逻辑入手,逐渐增加定时、计数等条件,把或、与、非关系理顺;

3、进而练习整数运算、实数运算、类型转换;

4、量程转换、PID调节回路的建立及P、I、D参数的理解(最好是有个物理回路验证,比如变频器+电机+测速传感器);

5、循环、顺序、跳转等程序控制(尽量避免跳转,非跳不可时也是跳的越近越好);

6、中断、通讯、位置控制....特别提醒:

①如果发现PLC工作不正常,先清除,再下载。

②有疑问第一个动作按“F1”,第二动作查“系统手册”,第三动作“论坛搜索”,第四动作“提问”。

③无论是编程还是实际接线验证,切忌急躁,如果脑子不清楚就先别干,防止发生安全事故或损坏设备。

作为室内设计初学者的学习心得 篇2

在这里我把我之前在邦元学室内设计的心得跟大家分享一下:

1、一定要先会熟练使用设计软件,因为你的意图需要软件来表达出来。我常常看到很多的初学者连基本软件都操作不熟练就去谈什么风格,很可笑。

2、你应该要学习室内装修这一行业的专业知识,知道这个东西或者造型的大致结构和施工原理。有的设计师画出了漂亮的图纸,拿到工地去,却实现不了,自已的心血花的没有意义,还让工人们笑话。

3、当你达到以上二点了,然后你就要用包容的心态多去学习。书上的、别人做的,汲取人家的长处。设计师在设计一个作品的同时,也是在把自已的生活态度、生活体验传达给客户的一个过程。因此,设计师必须要有不同场景的体验。例如你没去过星级酒店让你去做一个星级酒店的图纸,那是白扯。做设计的人常常在一个阶段,自我意识膨胀的很厉害,看了别人的东西,全是毛病,这样不好。不断的学习,才能越做越好。

书法心得(初学) 篇3

我真正意义上的接触书法是从这个学期才开始的,现在已经学习了四个月,或多或少都有点感想了,书法之路是艰辛的,我们学习书法的目的并不是那些休闲人士所追求的修生养性,长寿等等,我们目前来讲是追求在书法上有一定的进步,在毕业的时候可以写出一手不错的好字,对得住这个书法专业。

我的楷书是学习欧阳询的《九成宫》的,欧阳询又名欧阳率更,是楷书四大家之一,老师说欧阳询的字体是很严谨、险峻的,差一分一毫都会丢失他的味道。欧阳询的父亲欧阳纥因为举兵反陈失败而被杀,并且株连家族。欧阳询因为年幼,幸免于难,被父亲好友收养。欧阳询聪敏勤学,读书数行同尽,少年时就博览古今,精通《史记》、《汉书》和《东观汉记》三史,尤其笃好书法,几乎达到痴迷的程度。老师说过关于他的一个故事:有一次欧阳询骑马外出,偶然在道旁看到晋代书法名家索靖所写的石碑。他骑在马上仔细观看了一阵才离开,但刚走几步又忍不住再返回下马观赏,赞叹多次,而不愿离去,便干脆铺上毡子坐下反复揣摩,最后竟在碑旁一连坐卧了3天才离去。隋朝时,欧阳询曾官至太常博士。与同代另三位(虞世南、褚遂良、薛稷),并称初唐四大家。他的儿子欧阳通也经通书法,所以又称“大欧”。欧阳询楷书法度之严谨,笔力之险峻,世无所匹,被称之为唐人楷书第一。他与虞世南俱以书法驰名初唐,并称“欧虞”,后人以其书于平正中见险绝,最适合初学,号为“欧体”,他的字有多人评论。欧体每秉笔必在圆正,气力纵横重轻,凝思静虑。当审字势,四面停均,八边俱备;长短合度,粗细折中;心眼准程,疏密被正。最不可忙,忙则失势;次不可缓,缓则骨痴;又不可瘦,瘦当枯形,复不可肥,肥即质浊。细详缓临,自然备体,此是最要妙处。《朝日新闻》是日本综合性报纸之一。这张创刊百余年的报纸经过发展壮大,目前已经成为全日本知名度最高、最具影响力的报纸之一。然而,有很多人并不知道,《朝日新闻》的报头四个字,并非是日本人题写,而是出自中国古代书法家欧阳询之手,由他所写的字合成的。

篆书的起源是石鼓文,老师提倡我们从源头上学起。石鼓文,是我国最早的石刻文字,世称“石刻之祖”。石鼓文处于承前启后的时期,承秦国书风,为小篆先声。石鼓文刻于十座花岗岩石上,因石墩形似鼓,故称为“石鼓文”。石鼓文与金文有较大差别,具有明显的动感。现存的石鼓文是宋朝收集的十石鼓,上面刻有文字,当时认为是描述周穆王出猎的场面,后来的考古考证认为是秦穆公时代的作品,有的字已经残缺不全。当时由于尚没有发现甲骨文,所以被认为是中国最古老的文字。石鼓文其书法字体多取长方形,体势整肃,端庄凝重,笔力稳健,石与形,诗与字浑然一体,充满古朴雄浑之美。石鼓文比金文规范、严正,但仍在一定程度上保留了金文的特征,它是从金文向小篆发展的一种过渡性书体。传说在石鼓文之前,周宣王太史籀曾经对金文进行改造和整理,著有大篆十五篇,故大篆又称“籀文”。石鼓文横平竖直,严谨而工整,善用中锋,笔划粗细基本一致,有的结体对称平正,有的字则参差错落,近于小篆而又没有小篆的拘谨。在章法布局上,虽字字独立,但又注意到了上下左右之间的偃仰向背关系、其笔力之强劲在石刻中极为突出,在古文字书法中,是堪称别具奇彩和独具风神的。‘

篆刻是一门与书法密切结合的传统艺术,迄今已有两三千年的历史,又称玺印、印或印章等。印章是一种实用艺术品。篆刻家的作品与刻字铺印章的根本区别,在于前者讲究章法篆法,后者主要靠描,并不计较章法篆法传统认为,篆刻必先篆后刻,甚至有“七分篆三分刻”之说。篆刻本身是一门与书法密切结合的艺术。篆刻家的作品与刻字铺师傅刻出的领工资用的印章的根本区别,在于前者是“写”的,讲究章法篆法,后者是靠“描的”,并不计较章法篆法。不研究篆刻不讲究章法刻出的印必然十分僵板。故学习篆

刻的同时一定要十分认真地选择篆书碑贴临写,经过一个阶段的训练,便会明显觉得篆印时的便利,不少初学者重刻轻写,往往事倍功半。印章的风格应提倡多样,“巧”“拙”是两种不同的风格。但追求“巧”不能失之纤媚:追求“拙”不能失之狂怪。

隶书,亦称汉隶,是汉字中常见的一种庄重的字体,书写效果略微宽扁,横画长而直画短,呈长方形状,讲究“蚕头雁尾”、“一波三折”。隶书起源于秦朝,由程邈形理而成,在东汉时期达到顶峰,书法界有“汉隶唐楷”之称。隶书为适应书写便捷的需要产生的字体在结构上,有小篆的纵势长方,初变为正方,再变为横势扁方汉隶具有雄阔严整 而又舒展灵动的气度。隶书对篆书的改革包括笔画和结构两个方面。隶化的方法有变圆为方。变曲为直。调正笔画断连。省减笔画结构等等。其中以横向取势和保留毛笔书写自然状态两面点最为重要。横向取势能左右发笔,上下运动受到制约。最终形成左掠右挑的八分笔法。而毛笔的柔软性以使汉字笔画产生了粗细方圆。藏 露等各种变化。还有字距宽。行距 窄也是其章法上的一大特点。汉隶主要有两 大存在形式:石刻与简牍。到东汉时期,隶书产生了众多风格,并留下大量石刻。《张迁碑》、《乙瑛碑》、《曹全碑》是这一时期的代表作。而我学习的正是《乙瑛碑》,老师说这个碑是较成熟的作品了,所以我们写也挺不容易的。我在一开始的临帖中,一味的抖动那毛笔,想写出和 帖 那种变化,后来才知道,这些变化是用提、按来表现的。老师让我们注重书写感,要多写才可以。其实我比较喜欢细瘦整齐的字体,如《李斯·泰山刻石》。《泰山刻石》在章法上采用纵有行、横有列的布局形式,字距稍宽,行距略窄,字形体势修长,呈长方形,有平正、匀称、参差的艺术特点。从表面上来看,虽然秦篆的特点是规矩严整、整齐划一,藏 头护尾,行笔均匀,但实际上在内在上是富于变化的。其用笔在轻重提按上还是有一些细微的区别,这一点我们从其中的“刻”字可以感觉得到,无论是左面的“亥”字旁还是右面的“刀”部,其轻重粗细明显存在一些细微的变化。结体上非常注重方圆、疏密、、向背、揖让的谐调配合,但总体上又以 上密下疏、上重下轻为其特征,尽管如此,却并无头重脚轻、字势不稳之嫌,体现出了很高的艺术性。

经过这个学期学习的《书法鉴赏》,让我们对中国书法史有了大致的了解。首先在殷商时期刻写在龟骨,兽骨,人骨上记载占卜,祭祀等活动的文字,是经过巫史加工过的古汉字。严格地讲,只有到了甲骨文,才称得上是书法。因为甲骨文已具备了中国书法的三个基本要素:用笔,结字,章法。而此前的图画符号并不全有这三种要素。西周时期青铜器十分著名,内壁有铭文,如《大盂鼎》、《毛公鼎》、《散氏盘》等。春秋战国时期,各国文字差异很大,是发展经济文化的一大障碍。秦始皇兼并天下,臣相李斯主持统一全国文字,使之整齐化一,这在中国文化史上是一伟大功绩。秦统一后的文字称为秦篆,又叫小篆,是在金文和石鼓文的基础上删繁就简而来。汉代分为西汉和东汉,两汉三百余年间,书法由籀篆变隶分,由隶分变为章草、真书、行书,至汉末,中国汉字书体已基本齐备。隶书是汉代普遍使用的书体。汉代隶书又称分书或八分,笔法不但日臻纯熟,而且书体风格多样。书法艺术的不断变化发展,为以后晋代流畅的行草及笔势飞动的狂草开辟了道路。另外,金文、小篆因为实用面越来越小而渐趋衰微,但在两汉玺印、瓦当和嘉量上还使用,并使篆书别开生面。从汉字书法的发展上看,魏晋是完成书体演变的承上启下的重要历史阶段。巍然绰立的大书法革新家—钟繇,王羲之。他们揭开了中国书法发展史的新的一页。树立了真书、行书、草书美的典范。南北朝书法以魏碑最胜。魏碑,是北魏以及与北魏书风相近的南北朝碑志石刻书法的泛称,是汉代隶书向唐代楷书发展的过渡时期书法。唐代墨迹流传至今者也比前代为多,大量碑版留下了宝贵的书法作品。整个唐代书法,对前代既有继承又有革新。初唐书家有虞世南、欧阳询、褚遂良、薛稷、陆柬之等,此后有创造性的还有李邕、张旭、颜真卿、柳公权、释怀素、钟绍京、孙过庭。楷书、行书、草书发展到唐代都跨入了一个新的境地,时代特点十分突出,对后代的影响远远超过了以前任何一个时代。五代之际,在书法上值得称道的,当推

杨凝式。宋代书法帖学大行和以帝王的好恶,权臣的书体为转移的情势,影响和限制了宋代书法的发展。宋代为后世所推崇者有苏轼,黄庭坚,米芾和蔡襄四大家。四家之外,宋徽宗赵佶独树一帜,亦堪称道。元代书法,元文宗常幸奎章阁欣赏法书名画,书法一度出现兴盛局面。赵孟頫,鲜于枢等名家,是这一时期书法的代表。明代书法,由于士大夫清玩风气和帖学的盛行,影响书法创作,所以,整个明代书体以行楷居多,未能上溯秦汉北朝,篆、隶、八分及魏体作品几乎绝迹,而楷书皆以纤巧秀丽为美。清代的书法发展,按时间大致可分三段。早期(约顺治、康熙、雍正时)是明季书风的延续,属帖学期;中期(约乾隆、嘉庆、道光时),帖学由盛转衰,碑学逐渐兴起;晚期(约咸丰、同治、光绪、宣统时),是碑学的中兴期。

美术一种要素,是在发挥个性;而发挥个性最真确的,莫如写字。如果况能够表现个性,就是最高美术,那么各种美术,以写字为最高。中国书法史主要是讲历代书风形成的文化环境、历代书法著录和刻帖、历代书论等作概要描述。

初学律诗心得体会 篇4

古典诗词是我国传统文化艺术中的瑰宝,我喜欢它的博大精深,灿若繁星。从小到大,陪伴我时间最长的书籍就是《唐诗三百首》,是我永久的“营养品”。虽说是喜欢诗词,实际上我还是在诗词的殿堂门外徘徊! 因为读书时候老师所教授的只是课本上的一些诗句阅读和浅解罢了,并没有专业的教授诗词知识基础,后来在网上认识了一位老师,并在他的介绍下有幸加入了联都小渔村群进行专业的律诗创作学习,并聆听了凌雪老师六节诗词基础知识课程讲座,感受获益颇多。

起初我以为写诗只有凑合四句或者八句就是诗了,读诗也是毫无目的地背来背去,领会不到诗的真谛,更不懂何为律诗,何为平仄等等。在第一讲的课程中听凌雪老师讲格律诗的平仄及粘、替、对、才明白了写诗原来有一定的规则格律,其篇式、句式都有一定规格,音韵有一定规律,变化使用也要遵守一定的规则。格律诗结构严谨,字数、行数、平仄或轻重音、用韵都有一定的限制。另外学会了如何辨别四声区分平仄,凌老师还教了大家第一句是"平平仄仄仄平平"仄仄平平仄仄平和 仄仄平平平仄仄 等整首七律八句的平仄格式类推方法的技巧。

未系统学习之前,更不知何为诗韵等,在二讲的课程学习中明白了格律诗的基本特点是用韵、平仄、对仗,还有对、粘、拗救和避免孤平、三平调等。诗原来也分很多类型的,诸如什么是五律、七律、绝句仄起平收首句入韵式,平起仄收首句不入韵式,平起平收首句入韵式等类型。也知道写诗不可犯孤平,但有些诗的特定句式可以用的。在三讲的课程中发现自已对对联的知识很欠缺,明白了律诗其中二联对偶句的重要性,老师讲述了对偶是学习律诗的必修课题之一,才知道了律诗对偶句的五个特点是;1、两句为一联。2、词性相当。3、要平仄相对。4、出句的字和对句的字不能重复。5、句子结构要相同。理解了工整的对仗并不是单纯的天对天、地对地、事对事、人对人,更明白了律诗的对偶与对联不同,对联要整体写一件事情,而诗中的对偶只是写整首诗的.一部分。从课程学习中,我领悟到律诗中的对偶句只要是天对地、事对人、情对景、色对声,明白了对仗不能粘着而要展开,才显得腾挪变化令诗句灵活生动。律诗八句的几种写法;先景后情、先情后景、情景交融、八句都写景、老师建义初学者要写好诗的最快捷径是先学“先景后情”。课程中凌雪老师引导我们要多学习,闲余多读些诗来训练自已,对学习写诗有很大好处的。

初学asp心得体会 篇5

Response的属性

.buffer (表明页输出是否被缓冲)

使用格式

Response.buffer=true/false

注:很多方法使用时对BUFFER属性有要求,对其设置最好写在ASP文件第一行。

.ContentType (指定HTTP输出内容类型)

使用格式

Response.ContentType=“内容类型”

.BinaryWrite (不经过任何转换,将指定的信息输出,它主要输出非字符信息)

使用格式

Response.BinaryWrite 二进制数据

Clear/End/Flush与Buffer属性的依赖关系

{

.Clear (把缓冲区内容清空)

.End (停止执行后面的代码,缓冲区内容仍然有效)

.Flush (缓冲区中编译完成的数据先发送到客户端)

}

.Redirect (跳转网页,必须将Buffer的属性设置为TRUE)

使用格式

Response.Redirect 网址

Request对象Cookies集合用来取得用户的相关信息

Response对象Cookies集合负责将数据设置到浏览器

写入Cookies到用户浏览器

response.Cookies(“Cookies名”)=“Cookies值”

读取Cookies

request.Cookies(“Cookies名”)

另类的Cookies

response.Cookies(“Cookies名”)(“元素”)

另类的Cookies的读取

request.Cookies(“Cookies名”)(“元素”)

.expires (设置Cookies的过期时间)

使用格式

初学μCOS-II心得 篇6

μC/OS-II 是一个源代码公开、可移植、可裁剪的实时多任务操作系统,具有稳定可靠、实时性好等优点。和学习其他操作系统一样,我习惯从操作系统内核开始学习,然后扩展到其他细节和方面。这次初学μC/OS-II操作系统,我大体了解了构建一个操作系统的思路和运行流程,本文也主要围绕系统运行过程和通信谈谈自己的理解。一个系统的运行过程包括初始化、任务创建以及任务调度这几个主要的方面,而系统内通信则涉及到了信号量管理、消息邮箱以及消息队列等。其中我最感兴趣的是μC/OS-II查找最高优先级算法的实现,这一数据结构以及用空间换时间的基本思想是该操作系统中一个重要的环节;其次,μC/OS-II中的通信媒介也是我比较关注的部分,我将总结一下几种通信方式的特点以及异同。

相比而言,μC/OS-II是一个较为简单的操作系统,远没有Linux复杂,学习起来也比较好掌握,但这些基本思想在很多操作系统中是可以借鉴甚至相通的,可以作为学习其他操作系统的一个基础。书中的介绍方式是把一个实时系统分为很多个模块,然后逐一介绍。我觉得这种方式缺少整体把握,让初学者难以了解一个系统的大概运行情况。所以我先从操作系统运行过程切入,这与程序运行从Main开始有类似之处,比较好理解。

μC/OS-II运行过程

μC/OS-II的运行过程可分为系统初始化、任务创建和任务调度三个方面。其中主函数Main不到十行,由OSInit(),OSTaskCreate(),OSStart()分别完成初始

化,创建任务和调度的工作。其高度的结构化以及良好的函数封装对了解运行过程和学习μC/OS-II的编程思想以及设计思路有重大的意义。

在μC/OS-II中,系统初始化可以分为全局变量初始化、创建空闲任务任务、堆栈初始化、任务控制块初始化等部分内容。由于μC/OS-II操作系统中定义了众多与系统参数有关的全局变量,因此全局变量的初始化包含众多内容。这些系统参数的初始化大都被封装在OSInit函数中。尤其要注意的是,在OSInit函数中,OSRunning变量一定要被定义成FALSE,否则在OSStart函数中,系统无法启动创建的任务,系统因此变成了一个有始有终的函数,创建的任务永远得不到执行。在实际运行过程中表现为主函数运行一次之后,系统不再运行。创建空闲任务包括进入临界区、任务堆栈初始化、TCB初始化、退出临界区等内容,大部分是一些简单的赋值操作,比较简单。一旦任务就绪队列中有“1”(即对应的任务就绪),则相应的任务组OSRdyGrp 相应的位变成1,OSRdyTbl中的相应的位也变成1。

任务创建与创建空任务大体雷同。需要注意的是此时操作系统的OSRunning变量还是处于FALSE状态,因此创建任务的过程中,操作系统并没有开始运行。这就是为什么操作系统在开始运行的时候不是选择第一个创建的任务开始运行,而是从所有的任务里面选择优先级最高的运行的原因。

任务调度是从OSStart函数开始的。具体包括OSStart、OsStartHighRdy、OSTimeDlyHMSM、OSSched等函数。OsStart在整个系统运行的过程中只会运行一次。在系统创建任务之后运行。主要目的是从任务就绪表中挑选出优先级最高的任务,并开始运行优先级最高的任务。因为μC/OS-II操作系统并不是一个像Linux那样的时间片轮流处理的操作系统,它仅仅是一个处理完一部分内容之后再

去处理另一部分内容的实时操作系统,这就要求在每一个任务的每一个无限循环中都要加一个调用OSSched函数的函数。

μC/OS-II查找最高优先级

μC/OS-II操作系统查找最高优先级的算法和数据结构是我最感兴趣的部分,其中的主要思想就是以空间换时间。无论是遍历OSRdyGrp还是OSRdyTbl,都是为了找出最低位为1的位置,最直接的办法就是从低位到高位一个个比对,直到找到第一个为1的位置。类似于用for循环加上if语句,时间复杂度为Θ(k),在最差的情况下需要比较16次(8次OSRdyGrp,8次OSRdyTbl)。在μC/OS-II中巧妙地用一个OSUnMapTbl矩阵列举了8位数可能出现的所有情况(0x00~0xFF),查表即可得到某一个数对应的最低位是第几位,时间复杂度为Θ(1)。

OSRdyGrp 是一个8位的unsigned char型数。由于μC/OS-II系统最多允许prio为63,也就是说最多允许有64个优先级。64个优先级被分成了八组,每组也有八个优先级。如果有任何一组中的任务进入了就绪状态,则该组所对应的位变为1。OSRdyTbl为一个有8个元素的8位数的数组,分别为OSRdyTbl[0]到OSRdyTbl[7]。从OSRdyTbl[0]到OSRdyTbl[7]的每一位数对应相应优先级的任务是否进入了就绪态。

了解这两个变量之后,就可以很容易理解这个矩阵的作用了。矩阵的第i个数字表示用二进制表示的i中1所出现的最小位数。也就是说,通过查这个矩阵得到的是最小的出现1的位数。由此很容易理解这两行代码:

y= OSUnMapTbl[OSRdyGrp]

x = OSUnMapTbl[OSRdyTbl[y]]

得到的y为最高优先级所在的组号,x为最高优先级所在的组中最高优先级所在的组的组号。由于每组有8个成员,对于y组第x个任务来说,优先级自然是 8*y+x,由此得到了最高优先级。下面的代码中左移三位即是乘八:

OSPrioHighRdy =(INT8U)((y << 3)+ x)

μC/OS-II通信

μC/OS-II操作系统中的通信是我第二感兴趣的内容,之前学操作系统的时候,就了解过读者-作者问题,哲学家进餐问题等,涉及最重要的就是信号量在其中起的作用。μC/OS-II的通信用到了信号量、消息邮箱、消息队列这三种形式,这三种媒介有类似之处,尤其是消息邮箱和消息队列比较难分开。在我总结它们之间的区别之前,首先分别介绍这三种通信媒介。

信号量是进行任务通信的最基本事件。二值信号也叫互斥信号量,可以实现共享资源的独占。高优先级的任务在等待接受信号量的时候,如果低优先级的任务没有释放信号量,那就会一直等待下去,那低优先级的任务就没有机会运行了,系统就出现死机的状况了。在使用信号量同步时,一个任务能否运行取决于2个条件:一是优先级,二是是否获得信号量,相当于串联关系,这也引发了优先级反转的问题。消息邮箱是多任务进行通信的时候传递消息缓冲区指针的数据结构。消息队列是多任务进行通信的时候传递多个消息邮箱的数据结构。为了把事件的数据结构统一起来,制定了事件控制块ECB,专门用来描述消息邮箱、消息队列、信号量这些事件的。

我认为μC/OS-II通信的精华在于理解这三种媒介应用方面的不同,这样才能明白设计者区分为三种情况的原因所在:

用信号量进行行为同步时,只能提供同步的时刻信息,不能提供内容信息。若被控制方要求得到控制方的内容信息时,可以使用消息邮箱或消息队列。但由于消息邮箱里只能存放一条消息,所以使用消息邮箱进行任务的同步时,需要满足一个条件:消息的产生速度总要慢于消息的消费速度,即被控制任务总是在等待消息。若遇到出现消息的产生速度可能快于消息的消费速度的情况时,则可以使用比消息邮箱更为强大的消息队列,由于消息队列可以存放多条消息,所以消息队列能够有效解决消息的临时堆积问题。但消息队列的使用仍然需满足一个条件:消息的平均生产时间比消息的平均消费时间长,否则再长的消息队列也会溢出。综上可知,虽然这三种通信媒介比较类似,但是不能互相替代,他们有各自的适应范围。

由于μC/OS-II是一种抢占式的多任务操作系统,如果最高优先级的任务不主动放弃CPU的使用的话,其他任务是无法运行的,通常情况下,高优先级的任务在使用完CPU或其他资源后都要主动放弃,可以通过延时函数或者时等待一些信号量之类的让自己挂起。但是如果最高优先级任务一直使用CPU,那就跟单任务没有什么区别了。

学习总结

PLC心得体会 篇7

本次课程设计设计的是红绿灯,是我们实验做过的升级版。由于实验有了一定的基础,于是对本次红绿灯的设计也有了清晰的思路。在课程设计布置下来几天后我们就开始动手研究了,一开始就列了一张东直右、东左、西直右、西左和南北向的红绿灯亮灭的情况。然后开始对各个灯分配时间,然后开始了编写梯形图,本来是想用之前做实验时写好的那个程序来进行修改的,但是后来发现被改得面目全非,而且还把自己完全给弄混了,于是决定抛开之前的那个基础程序,根据现在的思路自己重新编程,这样反反复复的写了好多张草稿纸,最后当我把程序都写出来并已进入调试的时候,得到了一个不好的消息,说是老师更改了高级的要求,我当时有点崩溃了,差不多调出来的程序又得重新修改了。可是我还是很快摆正心态,又重新列了上面的那张各方向的红绿灯亮灭情况表,开始对程序进行修改,在修改的过程中我同时也对纸上的程序进行修改,以防再遇到同在实验室时丢程序的情况,那次丢程序把我郁闷得不行,给了我一个非常深刻的教训。再通过不断的修改调试后,终于运行正确了,但我对车辆检测的程序并没有很好的思路,于是第二天同同学一起研究了最后终于完整。设计时遇到的最难的地方就是对红灯的控制,即当其他方向绿灯或黄灯闪烁时都要必须亮红灯,最后用并联的思路完成了亮灯控制。由于程序中用到的定时器T比较多,为了不发生混乱,我把定时器T的标号设置成同其所控制的输出线圈类似,这样给设计及修改带来了极大的方便性和清晰性通过这次红绿灯的课程设计。使我对PLC软件都有了更近一步的了解,用再通过绘画电气连接图,让我对电气控制的知识又得以复习和巩固,同时还让我深刻的体会到课程与课程之间的联系强度,为接下来的学习、今后从事自动化控制领域的工作打下一定的基础。

118202214

plc课程设计心得体会 篇8

通过此次课设,让我了解了plc梯形图、指令表、顺序功能图有了更好的了解,也让我了解了有关plc设计原理。有很多设计理念来源于实际,从中找出最适合的设计方法。

虽然本次课程设计是要求自身独立完成,但,彼此还是脱离不了集体的力量,遇到问题和同学互相讨论交流。多和同学讨论。我们在做课程设计的过程中要不停的讨论问题,这样,我们可以尽可能的统一思想,这样就不会使自身在做的过程中没有方向,(自动化大四的学生,我觉得能做类似的课程设计是十分有意义,而且是十分必要的。在已度过的大三的时间里我们大多数接触的是专业基础课。我们在课堂上掌握的仅仅是专业基础课的理论面,如何去锻炼我们的实践面?如何把我们所学到的专业基础理论知识用到实践中去呢?我想做类似的大作业就为我们提供了不错的实践平台。在做本次课程设计的过程中,我感触最深的当数查阅大量的设计手册了。为了让自身的.设计更加健全,更加符合工程标准,一次次翻阅机械设计手册是十分必要的,同时也是必不可少的。我们是在作设计,但我们不是艺术家。他们可以抛开实际,尽情在幻想的世界里翱翔,我们是工程师,一切都要有据可依。有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。

说实话,课程设计真的有点累.然而,当我一着手清理自身的设计成果,漫漫回味这3周的心路历程,一种少有的成功喜悦即刻使倦意顿消.虽然这是我刚学会走完的第一步,也是人生的一点小小的胜利,然而它令我感到自身成熟的很多,另我有了一中”春眠不知晓”的感悟.通过课程设计,使我深深体会到,干任何事都必须耐心,细致.课程设计过程中,很多计算有时不免令我感到有些心烦意乱:有两次因为不小心我计算出错,只能毫不情意地重来.但一想起周伟平教授,黄焊伟总检平时对我们耐心的教导,想到今后自身应当承担的社会责任,想到世界上因为某些细小失误而出现的令世人无比震惊的事故,我不禁时刻提示自身,一定呀养成一种高度负责,认真对待的不错习惯.这次课程设计使我在工作作风上得到了一次难得的磨练。

短短两周是课程设计,使我发现了自身所掌握的知识是真正如此的缺乏,自身综合应用所学的专业知识能力是如此的不足,几年来的学习了那多的课程,今天才知道自身并不会用.想到这里,我真的心急了,老师却对我说,这说明课程设计确实使我你有收获了.老师的亲切鼓励了我的信心,使我更加自信.最后,我要感谢我的老师们,是您严厉批评唤醒了我,是您的敬业精神感动了我,是您的教诲启发了我,是您的期望鼓励了我,我感谢老师您今天又为我增添了一幅坚硬的翅膀。

上一篇:暑假实践报告 图书馆实习下一篇:国有企业产权登记制度

热门文章