可编程(通用8篇)
可编程 篇1
《可编程控制器》课程教学大纲
一、课程性质与特点
本书将机械原理与机械设计的内容有机地结合在一起,突出应用性,加强设计技能的培养,适应了目前教学改革的需要。《机械设计基础》除绪论外共分18章,包括机械设计概述,摩擦、磨损及润滑概述,平面机构的结构分析,平面连杆机构,凸轮机构,间歇运动机构,螺纹连接与螺旋传动,带传动,链传动,齿轮传动,蜗杆传动,齿轮系,机械传动设计,轴和轴毂连接,轴承,其他常用零部件,机械的平衡与调速,机械设计CAD简介等内容。各章内容基本上按照工作原理、结构、强度计算、使用及维护的顺序编写,并配有一定数量的思考题和复习题供学习时选用。
二、课程目标与基本要求
机械设计基础课程的开发要强调适当综合化和适当实施化。本书按照课程内容本身的内在联系和模块教学要求,建立“机械设计概论和机构结构”、“常用机构”、“机械传动”、“轴系零部件”和“机械连接”等5个模块。在教材内容上力求降低重心、拓宽面向、精选知识点,更新内容、突出应用,采用新颁布的国家标准规范。叙述简明扼要,减少对公式的推演,讲求实用,方便教学课程基本要求如下:
1、掌握杆件静力分析。
2、掌握键连接及销连接和螺纹连接的应用场合以及联轴器、离合器的区别。
3、熟练掌握平面联杆机构和吐露机构的区别及判定方法
4、熟练掌握机械传动的分类
5、熟悉轴承和轴的配合
6、熟悉液压与气压传动的种类及用途
三、教学方法与考核方式
教学方法:理论教学与实验教学相结合。考核方式:闭卷考试。
四、学时分配
总学时72学时
五、课程教学内容
绪论
0.1 机器的组成及特征
O.2 本课程的内容、性质和任务 0.3 学习方法 第1章 机械设计概述 1.1 机械设计的基本要求 1.2 机械设计的内容与步骤
1.3 机械零件的失效形式及设计计算准则 1.4 机械零件设计的标准化、系列化及通用化 复习题
第2章 摩擦、磨损及润滑概述 2.1 摩擦与磨损 2.2 润滑
2.3 密封方法及装置 复习题
第3章平面机构的结构分析 3.1 机构的组成 3.2平面机构的运动简图 3.3平面机构的自由度 复习题
第4章平面连杆机构 4.1 概述
4.2平面机构的运动分析 4.3平面机构的力分析
4.4 四杆机构的基本型式及演化 4.5平面四杆机构的基本特性 4.6平面四杆机构的设计
复习题
第5章 凸轮机构 5.1 概述
5.2 常用的从动件运动规律
5.3 盘形凸轮轮廓的设计与加工方法 5.4 凸轮机构基本尺寸的确定 5.5 凸轮机构的结构和精度 复习题
第6章 间歇运动机构 6.1 棘轮机构 6.2 槽轮机构
6.3 不完全齿轮机构和凸轮式间歇运动机构 复习题
第7章 螺纹连接与螺旋传动 7.1 螺纹连接的基本知识 7.2 螺纹连接的预紧与防松 7.3 单个螺栓连接的强度计算
7.4 螺栓组连接的结构设计和受力分析 7.5 螺纹连接件的材料和许用应力 7.6 提高螺栓连接强度的措施 7.7 滑动螺旋传动简介 7.8 滚动螺旋传动简介 复习题 课堂讨论题 附表
第8章 带传动 8.1 概述
8.2 V带和带轮的结构 8.3 带传动的工作能力分析
8.4 V带传动的设计
8.5 带传动的张紧、安装与维护 8.6 同步带传动 复习题 第9章 链传动 9.1 概述
9.2 滚子链和链轮 9.3 链传动的运动特性 9.4 滚子链传动的设计计算 9.5 链传动的布置、张紧及润滑 复习题
第10章 齿轮传动
10.1 齿轮传动的特点和基本类型 10.2 渐开线齿轮的齿廓及传动比
10.3 渐开线标准直齿圆柱齿轮的主要参数及几何尺寸计算 10.4 渐开线直齿圆柱齿轮的啮合传动 10.5 渐开线齿轮的加工方法
10.6 渐开线齿廓的根切现象与标准外啮合直齿轮的最少齿数 10.7 变位齿轮传动
10.8 齿轮常见的失效形式与设计准则 10.9 齿轮的常用材料及许用应力
10.10 渐开线标准直齿圆柱齿轮传动的强度计算 10.11平行轴斜齿圆柱齿轮传动 10.12 直齿锥齿轮传动
10.13 齿轮的结构设计及齿轮传动的润滑和效率 10.14 标准齿轮传动的设计计算 复习题 课堂讨论题 第11章 蜗杆传动
11.1 蜗杆传动的类型和特点
11.2 蜗杆传动的主要参数和几何尺寸计算 11.3 蜗杆传动的失效形式和计算准则 11.4 蜗杆传动的材料和结构 11.5 蜗杆传动的强度计算
11.6 蜗杆传动的效率、润滑及热平衡计算
11.7 普通圆柱蜗杆传动的精度等级选择及安装和维护 11.8 常用各类齿轮传动的选择 复习题
第12章 齿轮系
12.1 定轴齿轮系传动比的计算 12.2 行星齿轮系传动比的计算 12.3 齿轮系的应用
12.4 其他新型齿轮传动装置简介 12.5 减速器 复习题
第13章 机械传动设计 13.1 概述
13.2 常用机械传动机构的选择 13.3 机械传动的特性和参数 13.4 机械传动的方案设计 13.5 机械传动的设计顺序 复习题
第14章 轴和轴毂连接 14.1 概述 14.2 轴的结构设计 14.3 轴的强度计算 14.4 轴的材料及选择 14.5 轴的设计
14.6 轴毂连接 复习题 第15章 轴承
15.1 轴承的功用和类型
15.2 滚动轴承的组成、类型及特点 15.3 滚动轴承的代号 15.4 滚动轴承类型的选择
15.5 滚动轴承的工作情况分析及计算 15.6 滚动轴承的选择 15.7 滚动轴承的组合设计 15.8 滑动轴承概述
15.9 滚动轴承与滑动轴承的性能比较 复习题 课堂讨论题 附表
第16章 其他常用零部件 16.1 联轴器 16.2 离合器 16.3 弹簧 复习题
第17章 机械的平衡与调速 17.1 概述
17.2 回转件的静平衡 17.3 回转件的动平衡 17.4 机器速度波动的调节 复习题
第18章 机械设计CAD简介 18.1 概述
18.2 典型CAD/CAM软件简介
18.3 系统间的数据转换接口技术 复习题
可编程 篇2
本文主要介绍了可编程触摸键盘的组成、工作原理及软件设计。
1 组成及工作原理
1.1 组成及特点
1.1.1 硬件组成
可编程触摸键盘示意图见图1,其硬件由五线电阻式触摸屏及相关转换处理电路、EL平板显示器及相关驱动控制电路、信号处理单元等3部分组成,其分解图见图2。
五线电阻式触摸屏作为传感器,提供手指按下的位置信息。五线电阻式触摸屏以玻璃或有机玻璃作为基底,表面涂有2层透明的导电层(OTI,氧化铟),在2层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。当手指接触屏幕,两层OTI导电层出现一个接触点,因其中一面导电层接通X、Y轴方向的5 V均匀电压场,使得侦测层的电压由零变为非零,控制器侦测到这个接通信息后,进行A/D转换,即可得触摸点的位置信息。
EL平板显示器是一种场致发光显示屏,其驱动控制电路通过激活行列栅格交叉处的发光体而点亮显示屏。EL平板显示器具有高对比度、高亮度、宽温限等优点,可视角度超过±80°。
信号处理单元采用CPU模块,完成系统控制、数据处理等功能。
1.1.2 特点
(1)采用分离式栅格设计避免产生误按操作,并增加了触摸键盘的形象性;
(2)五线电阻式触摸屏、EL平板显示器可靠性高,并对键盘整体进行加固处理,保证了整机可靠性;
(3)连接器采用不相容设计措施,防止出现误连、误接现象。
1.2 工作原理
可编程触摸键盘信息流程图如图3所示。五线电阻式触摸屏作为传感器提供手指按下的地址坐标值,该坐标值通过转换处理电路处理后经串口传送至信号处理单元,信号处理单元经键值计算,产生相应的键值控制EL平板显示器显示,并将键值传送至用户计算机。用户可借助提供的数据生成器修改键盘内容和属性,通过串口下载至可编程触摸键盘。
2 软件设计
可编程触摸键盘软件主要由控制软件及数据生成器2部分组成。
2.1 控制软件
控制软件用以实现多种规格键盘功能,完成键值输出,显示多级菜单及键盘内容、状态,实现信号处理单元与计算机、触摸屏通信等,其流程图见图4。主要由设备初始化模块、触摸屏数据更新模块、键值计算模块、页面及状态显示模块、键值输出模块等几个模块组成。
设备初始化模块用以实现设备硬件初始化和变量属性赋初值等功能,初始化完成后进入系统正常运行状态。当有PC机串口中断时,数据更新模块被调用。数据更新模块接收PC机发送的用户修改后的键盘内容、属性信息,将上一次保存的信息进行更新并保存新的信息。当有触摸屏串口中断时,键值计算模块被调用。键值计算模块接收五线电阻式触摸屏发送的地址坐标信息,并利用地址坐标信息进行计算,将其转换成相应的键值编码。键值计算完成后,触摸键盘通过页面及状态显示模块驱动EL平板显示器显示,并通过键值输出模块将键值编码传送至用户计算机。
2.2 数据生成器软件
数据生成器是为用户提供的应用软件,其流程图见图5。在用户计算机上通过数据生成器对键盘的内容及属性进行定义和修改,可给各个键设闪烁、开关、互斥、一键二字等不同属性,每个键亦可添加或删除下级菜单。修改、定义完毕后通过串口将数据下载至触摸键盘,触摸键盘接收到串口数据后自动将键盘显示更新。数据生成器功能的实现,使触摸键盘功能灵活、使用方便。
3 结语
可编程触摸键盘作为一种可定义的操控部件,可按用户需求定义、修改键盘内容,改变了传统薄膜键盘键名固定的缺点。结构紧凑牢固,显示界面友好,使用方便,具有一定的推广价值。
参考文献
[1]罗仁鉴.人机界面设计[M].北京:机械工业出版社,2002.
[2]谭浩强.C语言程序设计[M].北京:清华大学出版社,2000.
[3]胡广书.数字信号处理理论、算法与实现[M].北京:清华大学出版社,2003.
[4]电子工业部.军用电子装备可靠性维修性设计规范[S].
欢迎来到可编程的世界 篇3
我们经常会在匆忙外出的时候,忘记关闭正在使用的家电,例如电磁炉或空调。回想起来的时候,心里不免惴惴不安,总是会犹豫是否要回家关上它。更有强迫症的人们还会在外出时担心门是否已锁好等问题。其实,这些小问题都可以找到更智能的解决方法。
如今,在我们的房子、汽车以及工厂中,有许多微小的智能设备正收集有关人类如何生活的数据。现在它们正开始互相交流,不久后我们或许就可以通过为它们编程以满足人类需求,帮助我们解决问题,甚至挽救生命。
让家居“活”起来
估计没有什么比在寒冷的冬日被闹钟吵醒美梦更令人讨厌的了。最近更有报道指出,长期被闹钟惊醒还会增大患高血压心脏病等疾病的概率。那么,上班族注定无法体验那种睡到自然醒、醒来可以闻到咖啡香味的生活吗?
也不一定。在智能生活中,把手机放入充电器,你的睡眠状态就会与之相连并被监控,睡着、深度睡眠、浅层睡眠都会一一记录。在每天设定的时间段里,它会等你睡眠最浅的时候将你叫醒。同时,充电器的底座还可以发光,模拟日出的光线让你尽量自然地醒来。
当然,仅是自然醒还是不够的。手机还可以和其他的智能家电连接,音响、收音机或咖啡机,让早晨更加人性化。也就是说,你醒来的一刻,咖啡机自动为你煮咖啡,自动拉起窗帘和开启立体声音响,热水器为你自动调节水温,而蒸蛋器也开始工作了。听起来是不是有点梦幻?不过,现在已经有人能亲身体验它了,随着今年初第一批产品的上市,越来越多的人感受到把各个物件连接起来打造智能家居的乐趣。
当然,像这样仅把几个家电连接起来还是有点小儿科。与之相比,物联网公司SmartThings的CEO霍金森的家就可算是集大成者了:家中200多个物件都连接到系统中,从车库门到他女儿的蹦床,每一件都能用我们听不见的语言进行交流,然后一起协同合作。
问及他把自己的家打造得像个神经系统的初衷,他表示,希望可以轻易地将物理世界里的东西和互联网连接,并智能起来,无论是自动门锁、自动调温器,还是电源插座开关。在WIFI引领计算机进入无线世界10年后,同时也是智能手机革命把口袋大小的设备连入网络5年后,我们终于看到了让这些日用品无线交流、执行任务的曙光了。
未来的可编程生活
霍金森为自己打造的“活起来”的城堡固然神奇,未来更多可能的智能生活却更令人神往:如果你的宠物独自跑出了你的院子,你将会立即收到名为“哦,不,我的宠物跑了!” 的通知;如果家里的卫生间、地下室或其他地方发生泄漏,它会在泄漏失控前发出警报或直接联系一个水管工;珠宝放在家里怕不安全?没关系,你能在外出时实时监控放有珍贵或危险物品的抽屉和柜子;而当你在社交网络上有新的粉丝出现时,室内灯光就会闪烁起来,让你精神一震。
这些还只是“小意思”,是智能生活很小的一部分应用实例,你可以想象家中所有的东西,比如门、书桌、灯光、音响、宠物的食品碗和地下室等等,只要给它们加一块芯片,它们就可以变得“活”起来,也就是智能起来。
关键的是,智能生活有无限的可能性。霍金森表示,拥有一定编程技术的消费者甚至可以开发专属的软件实现特殊的控制。SmartThings公司提供硬件和软件工具,可以使得其他创客和开发者自己开发相关的控制环节,控制更多的生活用品。也就是说,这是一个开放平台,第三方开发者能够创建自己的智能应用,甚至使用物联网公司提供的芯片,发挥自己的创意和想象力,创造自己的智能产品。
如此一来,正应了那句话“高手在民间”。各种奇思妙想纷至沓来。我们未来的生活不仅更方便,也会更安全。一款不仅能记录人们在做什么,还能预测人们将要做什么的摄像头正在研制中,这将让那些入侵者们无处遁藏。
同时,并不是所有的应用程序想法都是跟安全或者自动化有关的。比如说,一些父母为更好照顾患有残疾的孩子,他们希望应用增加一些调暗灯光、打开音乐等功能。一句话,未来的智能生活可以有你的编程参与。
可编程世界的三个阶段
“理想很丰满,现实很骨感”。看起来很美的可编程世界目前还不能一蹴而就,要想真正挖掘出它的全部潜能,我们还需要通过三个阶段。
首先,把更多设备连接到网络中,把更多传感器、处理器加入到日用品并通过无线连接提取数据。事实上,这一阶段已经在进行中了。为了避免千篇一律的产品,制造商们的一个尝试就是把产品放在网络中,并让其“智能”起来,无论是闹钟、冰箱还是健身器。事实上,这正是为什么那么多此类“小玩意儿”出现在“消费电子展”上的原因。当然,更大的原因还在于智能手机的发展让我们轻松控制这些智能设备,每年有7亿部的新增智能手机,其中大部分都能与周边传感器进行无线语言的交流。
其次,让这些设备互相“依赖”,这样没有人为介入,它们也能结合并协作完成简单工作。这是最复杂的一部分,因为它代表着海量的分析,只有有用的数据被收集起来实现自动化。
第三也是最后一个阶段,在这些对象连接的基础上建立应用。这意味着不只是把两个或多个功能进行搭售,还可以创建更复杂的相互关系,这就需要配合外部数据源和分析学。
比如,我们养了一株植物,错误地浇水可能会害死它。这时,一个土壤水分分析和洒水功能的结合就很有用。不过,这还属于初级应用,我们还可以想想一个更智能的洒水器,如果它能对天气报告,以及土壤水分、降雨的历史模式进行分析,就不仅能知道有多少水在土壤中,还可以预测当天是要下雨还是干热的一天。
《交通灯的可编程控制》教学设计 篇4
摘 要: 采用任务驱动,由观察实际交通灯的变化引出本次任务,进行任务分析、决策、实施,最后进行总结评价,帮助学生更好地掌握由可编程控制器控制交通灯变化。
关键词: 任务 PLC 十字路口交通灯
可编程控制器是目前应用极为广泛的工业控制专业,是集机、电于一体实践性很强的专业课,是机电专业中专学生的主干课程,也是维修电工国家职业资格的核心课程。
一、教材分析
本节课项目选自《可编程序控制器应用技术》(机械工业出版社 程显吉主编)第二章《S7-200系列PLC的基本指令及寻址方式》中第二节《定时器指令》,本教材是中等职业教育“十一五”规划教材。
二、学情分析
本节课的授课对象是中职机电技术应用专业二年级学生,大多数学生的数理逻辑思维能力差,且注意力难于保持较长时间。学生对纯理论的学习缺乏兴趣,对实践操作兴趣较浓厚,但执行规范的能力及遵守纪律的意识较差。
三、教学目标
(一)知识与技能
1.掌握用PLC控制十字路口交通灯的时序图绘制、I/O分配及实物接线图绘制。
2.掌握西门子PLC基本指令、定时器指令及比较指令的使用。
3.掌握十字路口交通灯的PLC程序设计。
4.掌握简单故障现象的检修。
(二)过程与方法
通过任务分析、任务决策、任务实施、总结与评价,实现“做中学,学中做”。
(三)情感与态度
1.实事求是的学习态度和探究能力。
2.小组合作的团队精神和竞赛意识。
3.树立安全文明生产的观念,形成良好的职业道德。
四、教学重点与难点
(一)教学重点
1.掌握用PLC控制十字路口交通灯的I/O分配及PLC的外部接线图。
2.掌握THSMS-A型实验台上交通灯控制的接线。
3.掌握十字路口交通灯的控制过程,并熟练使用编程软件进行程序编写、下载、调试。
(二)教学难点
1.十字路口交通灯的程序设计。
2.解决在实际操作过程中出现的故障。
五、教学方法
“做中教”,采用情境教学、任务驱动、启发式教学等方法,通过操作演示、启发引导、个别指导、点评反馈等手段展开教学。
“做中学”,采用探究式、讨论式、合作式、实践式等学习方法,通过自主学习和小组合作学习等途径进行学习。
六、教学过程
(一)课前准备
1.布置学生观察某一十字路口交通灯的变化情况,并拍摄一段视频上交。
2.学生查阅书籍,回忆老师讲过的指令思考如果用PLC控制技术实现该路口的交通灯控制,那么怎么办?
(二)课堂活动
1.活动一:项目引入。
老师播放视频,创设情境,抓住学生注意力,激发学生的学习兴趣。
2.活动二:任务分析。
(1)项目描述:PLC实现交通信号灯的控制,规律:先是东西方向绿灯亮25秒,然后闪亮3秒,绿灯闪过之后是东西方向黄灯亮2秒,接下来是南北方向绿灯亮15秒、闪亮3秒及南北方向黄灯亮2秒。在东西方向绿灯亮、闪亮及东西方向黄灯亮的同时,南北方向亮的是红灯;在南北方向绿灯亮、闪亮及南北方向黄灯亮的同时,东西方向亮的是红灯。信号灯按此规律不断重复。(2)老师播放视频,了解最终正确显示结果。(3)引导学生画出十字路口交通灯时序图。
3.活动三:任务决策。
(1)确定I/O分配。(2)绘制PLC外部接线图。(3)绘制实际接线图的连接。(4)确定编程思路及主要使用的指令。
4.活动四:任务实施
(1)播放视频强调安全操作注意点:除调试外,不能带电操作,尤其是接线一定要断电。播放视频老师演示接线。(2)搭建硬件电路,安全接线,并检测接线可靠性。(3)用软件编写梯形图,下载并进行调试。
赛一赛,看哪一组配合得好,做得既快又好,评选出前三名并发小奖品以示鼓励。
(4)故障排除。
5.任务五:提高与总结
(1)对任务实施过程中学生出现的故障进行分析,对照常见故障检修表,和学生一起讨论故障检修的方法,化解难点。赛一赛:设置故障,小组派一名成员进行比赛故障检修,看哪一组快。(2)给出样例程序并进行总结。(3)填写学习过程评价表。
6.任务六:布置作业
七、教学反思
(一)可取之处
1.项目选取“十字路口交通灯的PLC控制”贴近学生生活实际,较好地激发了学生的学习兴趣和学习动机;难度适中,由项目的评估和验收情况来看,95%的同学能够完成任务,锻炼技能的同时,极大提高学习成就感,为今后的继续学习打下坚实基础。
2.教学设计上以十字路口交通灯的控制的整个工作过程为导向,将具体教学目标落实到各个工作任务中,同时,学生工作页中的知识链接、操作指导和教师制作的教学视频,为本项目的教学重点难点提供了所需补充,达到了化难为易的目的。
3.组织形式,通过小组合作学习,较好地实现了优势互补,特别是在故障检修环节,如一个小组内故障不尽相同,这时小组内同学相互检查、排故。另外就常见故障现象及解决办法我列出了表格帮助同学进行排查,较好地解决了难题。
4.评价方式,在教学环节中,变由教师一方评价为学生自评、互评,老师总评的大家一起参与的评价方式,起到了很好的互动作用。
(二)不足之处
进度控制方面,由于学生在知识和能力方面存在较大差异,小组内完成时间相差较多,一定程度上影响了整体进度。
(三)改进措施
可编程 篇5
3.1教材的选择
很多学校都开设了计算器编程课程,但是一直没有适合的教材作为参考,上课非常不方便。虽然计算器编程相关书籍非常多,但作为教材还不够系统,难易程度也不合适。
3.2可编程计算器机型选择
市面上的计算器品牌很多,如CASIO(卡西欧)、得力DELI、TI(德州仪器)、SHARP(夏普)、Canon(佳能)、COMIX(齐心)等。各种品牌、型号的计算器,它们各有特点,且操作不完全相同,计算器的按键对于不同的品牌、不同的型号,区别也比较大。编程计算器的程序语言也不完全相同,计算器的计算功能的多少、在工程上的使用程度等都影响计算器的选择,同时还要兼顾学生本身的经济条件。因此,选择哪一种机型的计算器用在教学中是一个要解决的问题。3.3教学内容的选择因课程开设时间的不同,对教学内容的要求也不一样。如果开设时间过早,相关的基础课程还没有学习,学生学习起来困难较大。将课程安排在大部分专业课程之后,基本原理部分的讲授就会变得相对简单,但编程内容要如何选择,怎样安排整个教学内容才能达到比较好的效果呢?这是我们要解决的.又一个问题。
4课程建设
4.1教学时段安排
因计算器编程课程与很多专业课程密切相关,如果大部分专业课程没有学过,在讲程序设计时,势必要把所有没学过的数学模型及原理从头讲一遍,这样就会与其他专业课程重复。根据多年对本课程的教学和研究,将课程安排在完成大部分专业课程之后,将会事半功倍。此外,计算器程序设计课程同一些专业课程会同时开课,将计算器程序用于这些专业课程中的相应计算中,这样的学习效果会更佳。例如在开设工程测量课程时,将曲线放样元素的计算用计算器程序来完成,计算更快,学生也更有学习兴趣。
4.2教学时间安排
4.2.1一周安排几节,用一个学期的时间完成课程教学这样安排,学生有时间学习和消化讲过的内容,但时间过长,可能在下次上课的时候就将上节的内容忘记了。4.2.2集中排课,一周时间完成课程教学用一周或两周的时间,集中学习。天天都在接触计算器及相关编程内容,记忆深刻。但集中学习,一次接受的知识太多,学生理解起来有困难。在学过一个知识点后,学生没有更多的时间去消化吸收。这两种安排各有利弊,但将其综合起来,将课程安排半个学期的时间,教学的进度与学生的接受能力都可以得到满足,教学效果更佳。
4.3总学时的确定
课程的安排要满足学生学会计算器的基本功能、基本编程功能、专业计算程序的编写、在工程应用中使用到的一些常用计算器程序等。由易到难,学生从计算器的基本功能开始学起,通过学习习近平时熟悉的数学模型,学习兴趣会更浓。通过这样的循序渐进的过程,逐渐掌握程序编写的要点与技巧,从而学会编程。要达到这样的教学目标,总学时安排大概30学时即可。
4.4计算器机型的选择
根据卡西欧(中国)贸易有限公司市场部相关人员的市场调查,及测绘相关专业已经毕业的学生反馈的信息,在工程中使用较多的机型为CASIOfx-5800P计算器。因此,为了适应市场及学生就业岗位的需求,课程选用CASIOfx-5800P计算器作为主要机型,有针对性地讲授其编程方法,同时附带市场上用的相对较多的其他机型作为比较。
5教材建设
针对各高职院校计算器编程课程的困扰及课程特点,经过全国测绘地理信息职业教育教学指导委员会认真研究,组织编写了《Casiofx-5800P测绘程序设计与应用》教材,该教材从测绘及相关专业出发,内容涵盖计算器的基本计算操作、编程基础、点位坐标计算、参考椭球与坐标转换、高程测量计算、导线测量计算、曲线测设和面积计算等程序的编写与使用,与测绘专业紧密结合,难易程度相当。学生学习了相关测绘基础知识,如测绘基础、测量平差、控制测量、工程测量等学科之后,再来学习计算器程序设计,在数学模型的学习上不用花费过多的时间,重点放在程序设计与使用上,效果会更好。在信息化比较发达的今天,除了纸质的教材外,学生可以借助各种媒体进行学习。同时考虑到课程的学习时间不是很长,需要在短时间内掌握编程技巧与方法,所以在教材出版的同时,还配套有课程相关的学习视频、课件、教案等供老师和学生参考。学生除了在课堂上学习外,还可以自由安排时间进行自学。老师上课更轻松,学生也可以更好地学习。
6结语
课程建设方案及教材内容的设计,在由全国测绘地理信息职业教育教学指导委员会组织的“工程计算器与测量教学整合”课题研讨会上,得到了与会专家、老师、工程师等的一致好评。同时为了使学生更爱计算器程序设计,使计算器程序设计课程达到开设的目的,卡西欧(中国)贸易有限公司联合多所高校、企业组织了工程计算器程序设计大赛,使专业人士和学生积极参与,促进了计算器程序的发展和改进,做到以教促学、以赛促学,最终达到以学促用的目的。但是,这其中也存在一定的不足之处,我们会在以后的实践中不断改进,以适应发展的需要。
参考文献
[1]周拥军.CASIO可编程计算器在土木工程教学中的应用实践[J].昆明冶金高等专科学校学报.,19(04):51-52.
[2]王中伟.卡西欧fx-5800P可编程与道路施工放样程序[M].广州:华南理工大学出版社,.
交换编程――结对编程的延伸实践 篇6
“结对编程技术是一个非常简单和直观的概念:两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计、同一个算法、同一段代码或者同一组测试。与两位程序员各自独立工作相比.结对编程往往只需花费大约一半的时间就能编写出质量更高的代码, 但是,人与人之间的合作不是一件简单的事情——尤其当人们都早己习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。”(引自《结对编程技术》,原名为《Pair Programming Illuminated》,作者为Laurie Williams, Robert Kessler)。下面我们分析一下结对编程的特点:
结对编程在很多项目中得到应用,也作为XP(极限编程)一个非常著名的观点和做法被很多人大为推崇。
结对编程是两个人同时做同一件事情的一种方法。表现上会给人一种浪费一个开发人员的感觉,实质上这的确是可以提升效率的。
同样的这个做法,我在上海进行的一个类ERP项目中用过一次,当时在我做完权限系统的全部功能后,和一个兄弟合作了一个模块,我们两个人只用了三四天时间,就完成了这个新的模块的全部功能。相对于我们此前做的功能模块来说,时间不到那些模块开发时间的十分之一。但由于结对编程会让人感觉到资源被浪费了一半,在20的一个项目中,我提出进行结对编程的时候被领导拒绝了。这件事以后,我就开始考虑如何才能降低这种表面的浪费,而又能让大家交流起来,同时能提高团队的稳定性。
产生背景
年我的项目组要做如下这样的一个项目:
这是电信MSS系统的核心业务系统部分,包括了规划、设计、施工、验收、财务、合同等多个重要环节和多个部门的业务。当时团队开发人员数量较少,人员技能较为均衡,没有水平超出其他人过多的技术人员。这个项目在最初评估的开发周期就是第一个版本在五个月内完成,整个项目至少要做上一年以上,而最后的实际情况是,这个项目随着不断的升级和调整一直开发了三年多。最初的开发团队是十一个人,后来扩展到二十三个人,主要开发人员总数为十六个人,其中有四个人技术水平相对较高,另外的七个人技术水平相对较低但是也都有三年多的实际项目开发经验,其中有三个是我带的三个应届毕业生。
由于开发团队中没有技术水平超出其他人很多的人员存在,因此技术方案的论证过程都是在大家的共同讨论中制定下来的,只是在团队整体控制上,当时我有相对较强的发言权。因此在权衡了整个项目的实际情况后,完成需求工作我就告诉弟兄们——第二阶段设计模型的开发大家交换来做。
刚开始很多弟兄不理解,因为相对而言我的开发经验比其他人多了几年,所以当时我说的一些话兄弟们还可以接受,于是我就直接要求大家按照我的计划执行。在设计模型开发完成后,我再次要求大家进行交换。两次交换完成后,保证了每一个模块都有至少两个人对其十分熟悉,一方面不会因为人员的变动造成团队的不稳定(这一点考虑相对较少,因为当时的团队合作时间比较长,大家彼此十分熟悉和了解),另一方面保证每一个模块的开发人员都能找到人进行讨论,从而增加了团队内的沟通,方便了协调工作的进行。
因此在那个团队的开发过程中,我们经常是大呼小叫,无论走到哪里,都是十分热闹的场景。
方法定义
与结对编程类似,交换编程也是一个非常简单和直观的概念:两位或者多位程序员轮流开发同一个软件系统的同一个模块的不同阶段的任务。交换编程的方式更合适的说法应该是交换开发,这种方式不仅仅可以应用于软件项目,也适合其他研究开发型项目。相对而言,这更是一种更容易被人们接受的方法,在前文大家已经看到了它在实际项目中的事实,这里先分析一下它与结对编程的不同之处:
它仍然采用传统的一人一机的开发方式,结对编程是两人一机。
它在每个迭代间进行多人交换或者两两交换,结对编程没有交换的概念。
它与传统的编程方式之间的差别是在每个迭代间进行多人交换或者两两交换,而传统编程没有交换的概念。
这里说明一下两个概念:
轮轮流交换:三个以上的程序员之间相互交换所开发的工件,不仅限于三个。例如:A1的开发内容交给A2,A2的交给A3,……,An的交给A1。这种方式称为轮流。
两两交换:两个程序员之间相互交换所开发的工件。仅限于两人之间。
建议实施方式
交换编程中的操作与其他过程有较大的差异,根据经验,建议在软件工程实施的各个阶段按照如下的方式进行:
需求工程中,需求调研和需求分析进行轮流交换,轮流交换至少是三个以上的人进行互换,不是两两互换;
概要设计(分析模型)开发中,需求分析到概要设计也进行轮流交换;
详细设计(设计模型)开发中,概要设计到详细设计再进行一次轮流交换;
编码实施启动后,详细设计到编码的交换采用两两交换,注意这个时候不再采用轮流交换了。
在全程建模的开发方法下的交换编程应用方式如下图:
由于目前没有进行实际数据的度量对比,本文也无法从量化的数据上来说明问题,只能通过一些具体的事实来进行说明和验证:当时这个项目的模块从7个扩展到了11个,人员数量从11人扩展到了23人,我们在七个月内满足了南方11家省级电信公司和集团公司的基本业务需求,从4月到月期间,基本完成了这些省公司版本的二次定制开发任务。
在编码以前全部采用轮流交换的目的就是为了让更多的人了解项目进展的全部内容,有利于增加团队内的交流,使更多的人对项目所开发的内容熟悉,并能让他们提出自己的观点,也有利于使更多的人从更多的角度来研究某个系统模块所需要实现的功能和用户需要解决的实际问题,不会因为某个人的定式思维而出现理解偏差,从而造成对需求的理解不到位。
详细设计到编码的交换采用两两交换,这是因为前期需求已经基本上都稳定下来了,这时候不需要对用户需求进行更多方面的理解,只需要进行实施并进行纯粹的编码工作即可。此时做轮流交换就不存在任何意义了,相反只能影响开发进度。
优劣势分析
这里所提到的优势都是和具体的开发方法相关联的,大部分是相对于XP方法中的结对编程,同时也会分析它与传统开发方式间的优劣。
开发时间“浪费”不明显
表现
这个开发时间“浪费”不明显是相对于结对编程与传统开发模式而言的,至少让老板没有感觉到人员分配方式带来了人员的浪费。大家都知道,结对编程需要两个人共用一台计算机、一套键盘、做同一个故事,这样的开发方式往往会给人感觉浪费了一个人,虽然事实上未必如此。但是如果哪个项目经理第一次甚至说前几次这样做,估计大多数老板都会表示反对的,因为他会感觉自己的技术人员只有一个人在做事情。同样,在的敏捷中国开发者大会上,ThoughtWorks的总经理也提到了这个问题,他的解释是这样的:当两个人合作三个月以后,效率会超过两个人单独编程的效率!但请注意:这里有一个时间前提——三个月以后。
三个月这个时间未必是真实确凿的时间分界线,它只是一个模糊的大概的时间范畴,如果两个人配合的好,也许只需要两个多月,如果配合不好,也许需要四五个月的时间,或者更长的时间……。我相信这样的说法连Martin也不会反对的。从这个时间界限上,大家可以看看国内公司的项目状况,然后再继续我们的讨论。
分析
项目情况:国内很少有时间限度较长的项目,大多数项目都是在三个月到半年时间内结束,有些甚至只有一个月。这样的时间特性,将使得这个三个月的期限变成了一句空谈,也就是说,当两个人磨合好的时候,项目已经结束了。这时候,有人会说,下一个项目还可以继续合作呀,好,那我们来看看国内项目团队的人员变动情况,然后再继续。
人员情况:国内大多数的公司都处于一种为了谋生而存在的状态下,有很多技术人员都有三五个月就跳槽的经历。不仅仅是技术人员,往往公司也是这种状态,很多公司就是为了某一个项目而建立的,老板在招聘技术人员的时候,都是往最低限压低技术人员的工资,当一个技术人员对项目了解到一定程度的时候,这个时间往往是在三个月到半年时间之间,
半年,或者一年,是一个人最容易发生跳槽行为的时候,因为这个人了解了公司的实质情况,如果老板当时骗了人,那么这个人必然要离开公司;如果老板当时过分地压低了他的收入,那么这时候这个技术人员就希望能够获得加薪等等,除此之外,还有很多很多其他的因素,都会给人带来未知的行为。也可以说,国内很少有团队成员能够合作达到一年以上的时间。这样的话,第一个项目磨合好了,第二个项目就是在考虑跳槽,第二个项目未结束人就走了,这是我们平时很常见的现象。
这个时候做结对编程,效果就不会那么明显,因为在人员相对成熟的时候,人的心理发生了较大的变化,工作的积极性和配合程度也远远不及刚刚进入公司的时候。那么结对编程在这样的环境下还能进行下去吗?估计不用分析就可以知道了。这时有人会说,如果配合不好,那就换人结对,不一定非要这两个人结对。那这就要从项目组人数说起了。
项目组人数:在我所开发过的项目中,大概有不到一半的项目有十个人以上的开发团队。最大的团队开发人员是不到三十人,这二十多人还要分成几个组,每个组也就五六个人而已。在这种情况下,结对的问题就出现了,在组内的你只能和这么三五个人结对,是不是都很容易配合起来呢?这个事情很难说。配合不好怎么办?换人?换项目?还是换公司?当然,如果配合了三个月还配合不好,站在公司的立场上,是肯定要考虑开除掉某人了,至少也要将他降薪或者调离这个项目组,因为公司承担不起这么大的风险。项目经理更是在担着风险,因为结对编程的事情老板本来就不太乐意看到,本来老板就有意见,而项目组如果发生了这样配合力度很差的情况,项目经理的处境可能就非常危险了。
综合上面这三个方面的情况,我们可以得到如下的结论:
结对编程在中国这些短小项目过多的情况下是不太适合的!结对编程其实更适合一些相对人员较为稳定的开发环境,否则,三个月的低效率配合时间会让老板将项目经理的脑袋当球踢的。但是,结对编程还是有其好处的,比如,提高项目组的稳定性,当一个人离开后,另外一个人可以很快地将新人带到位,项目组不会因为人员变动而发生较大的风险问题。同时,结对编程提高了程序员之间的交流,团结了项目组内成员,同时容易形成人月神话中提到的胶冻团队的效果。另外,在三个月后还是有效率提高的情况发生,的确能够带来很好的效益的。
这时候,交换编程就带来了很好的效果,一是没有老板担心的两个人做一件事情的风险,同时增加了项目组内成员的沟通交流,也提高了团队的稳定性。但如何提高团队的稳定性?
项目组稳定性提高
表现
在我前面的例子中可以看到,一个模块至少有三个人对他它很熟悉,因此在后面的开发过程中,无论哪个人发生变动,都不会影响这个团队的稳定性,所有的任务都能够很好的延续下来。每一个系统的模块都会至少按照阶段数量(不同的项目会有不同的开发周期,同时也就有不同数量的人会对这个模块十分熟悉)分给不同的人来进行开发。如果和结对编程配合起来使用,则将会使得对同一个模块了解的人数达到一般交换编程的两倍人数。
分析
有了这样的对每一个模块都很熟悉的人员数量的存在,团队的稳定性就会表现出来,任何一个人的变动或者少数人员的变动都不会对团队和开发进度产生较大的影响。因为随时都可以有其他人来接替这个发生变动的人的全部工作,也很容易培养新人进入到团队内来进行工作。
更适合没有绝对高手的团队
表现
当团队内没有绝对高手存在时,也就是说,系统的架构设计将是更多的人一同讨论出来的,并在开发过程中不断的修改和调整。
分析
没有绝对高手存在,系统架构设计就不能够在系统进行分析设计前完成,而同时架构的不稳定,就无法更好地安排任务计划和制定故事,这些都会影响到整个系统的开发进度和过程,同时,敏捷编程所倡导的很多做法就无法在这个大前提下来进行实施。
国外能够很好地采用敏捷的做法来实施项目的一个原因是,他们有很多有一二十年工作经验的开发人员。这些人员的经验积累是非常重要的,他们可以更好地在项目开始的前期对项目进行整体的控制和把握,同时做好项目计划和制定好任务故事,而这一点在国内尤其是软件公司中还不具备这个条件,因此,很多项目我们都处于的状态类似于我前面所举的电信项目的团队情况,甚至情况比那个团队还要差得多。
团队内交流增加
表现
前面已经提到,“因此在那个团队的开发过程中,我们经常是大呼小叫,无论走到哪里,都是十分热闹的场景。”这种频繁的交流,无形中使得团队的凝聚力提高,相互之间的关系和合作也都更为密切。
分析
如果是一个人从头到尾开发一个模块,他就几乎不需要和团队内非管理人员进行交流,甚至在某些情况下他只需要和客户做好沟通就足够了。而这时候,即使进行了同行评审,这个技术人员也可能会认为两三天的时间内这些人不可能了解这个系统模块的内容。这种评审也就容易流于形式而无法得到真正的重视。其他人也会认为评审是浪费自己的开发时间,于是到了一定程度评审就会成为可有可无的状态。如果有较多的人参与了这个模块的前后期分析和开发,每一个阶段都可以找到别人来进行讨论,在评审时对这些人提出的意见也就更容易接受——因为他至少会认为这几个人比他更早介入这个模块的分析,在某些程度上会比自己了解的更为深入。
唯一可能的劣势
表现
由于存在多人之间的交换,在某一个具体工件的开发的时间上会比一个程序员一直做下来略有延长。
分析
由于在任何一次交换之间都需要前一阶段开发者队后一阶段开发者进行关于业务和技术方面的沟通和交流,因此会延长项目在初期的开发时间。尤其当团队成员相互之间的熟悉程度不够或者配合不协调的时候,这个问题会表现得较为突出,甚至可能影响一些项目的进度以及开发工作的进展。
但是,这个影响会在相应的程度上促进团队内人员之间更快地相互熟悉,这个周期要比结对编程短很多,一般来说,不会超过一个月的时间就可以让团队成员之间相互熟悉(由于不是坐在一起开发,这个熟悉的程度比结对编程的要求低很多,因此时间也相应会缩短很多)。
深入讨论
交换编程的应用方式是有其适用环境的,另外在我的实践和研究中还建议如果团队合适,可以考虑与结对编程配合使用。
适用环境:这种开发方法的适应性较强,这里分为团队状况和项目情况两个部分进行一些说明。
团队状况:交换编程适用于人数超过两个人的开发团队,因为交换一次至少也需要两个开发人员。大的团队也可以应用交换编程的方式,来进行项目开发。要求团队内的成员有一两个具有两三年以上开发经验的,这是对于一般的项目(哪怕没有什么技术难度)的最基本要求。
项目情况:项目规模不限,开发周期的适应性也较强,对于任何类型的项目都可以适用。
与结对编程配合使用:如果领导比较认可结对编程的开发方式,这个时候,您引入交换编程也会带来同样的好处,比如团队稳定性,至少从对系统业务模块熟悉的人数上来看增加了一倍,以及团队凝聚力,因为频繁的交流,从而更多地降低因为少数人的思想和考虑偏差造成对用户需求理解不足等问题。
有了上述的情况表现,也使得团队的规范化操作能力更强,也可以使得很多问题能够在有效的沟通中的到解决。
由此可见,交换编程的存在是有其道理的,没有用过的朋友不妨尝试一下,至少对您的团队没有什么伤害和大的变动。
作者介绍:白慧冬,网名青润,独立软件咨询师,《软件工程之全程建模实现》一书作者,CSDN软件工程/管理版块大版主,一个在不断摸索实践的国内软件工程方法和技术的亲历者。底开发完成了一套软件度量概算产品,并对一些行业应用软件进行了较为成功的度量分析。20完成了全程建模方法中需求与代码影射关系的分析与实践探索。个人Blog为:blog.csdn.net/qingrun 。
可编程控制器的发展趋势 篇7
1 向微型化、专业化的方向发展
随着数字电路集成度的提高、元器件体积减小、质量提高,PLC结构更加紧凑,设计制造水平在不断进步。有些微型PLC的体积非常小,如三菱公司的FX0N,FX0S,FX2N系列PLC均为超小型PLC,与该公司的F1系列相比,其体积只有前者的1/3左右。
微型PLC的体积虽小,功能却很强,过去大中型PLC才有的功能如模拟量处理、通信、PID调节运算等等,均可以被移植到小型机上。如FX2N的基本指令执行速度高达0.08μs/步,有功能很强的128种298条功能指令,可以作16位或32位二进制运算,具有数据传送、比较、四则运算、转移、循环、子程序调用、多层嵌套主控等功能。FX2N为用户提供了大量的编程元件,如3000多点辅助继电器、1000点状态、256点定时器、200多点计数器、8点内附高速计数器、8000多点数据寄存器、128点跳步指针和15点中断指针。配上特殊扩展模块可实现模拟量控制、定位控制、温度控制、可编程凸轮控制和模拟量设定。FX系列PLC可以通过串行通信接口与PC和三菱公司的A系列PLC联网,FX系列PLC也可以组成RS-485通信网络。
2 向大型化、高速度、高性能方向发展
大型化指的是大中型PLC向着大容量、智能化和网络化发展,使之能与计算机组成集成控制系统,对大规模、复杂系统进行综合性的自动控制。大型PLC大多采用多CPU结构,如三菱的An A系列PLC使用了世界上第一个在一块芯片上实现PLC全部功能的32位微处理器,即顺序控制专用芯片,其扫描一条基本指令的时间为0.15μs。另外,松下公司的FP10SH系列PLC采用32位5级流水线RISC结构的CPU,可以同时处理5条指令,顺序指令的执行速度高达0.04μs/步,高级功能指令的执行速度也有很大的提高。在有2个通信接口、256个I/O点的情况下,FP10SH总的扫描时间为0.27~0.42ms,大大提高了处理的速度。在模拟量控制方面,除了专门用于模拟量闭环控制的PID指令和智能PID模块,某些PLC还具有模拟量模糊控制、自适应、参数自整定功能,使调试时间减少,控制精度提高。同时,用于监控、管理和编程的人机接口和图形工作站的功能日益加强。如西门子公司的TISTAR和PCS工作站使用的APT(应用开发工具)软件,它使用工业标准符号进行基于图形的组态设计。APT的程序检测和模拟功能减少了安装和开发需要的时间,APT根据用户确定的控制策略自动生成组态程序。可以认为这是控制设计领域的重大革新,是过程控制的CAD。TISTAR的命令均为组态方式,不需要任何编程工作,大大简化了控制系统的建立和调试工作。
3 编程语言日趋标准
与PC相比,PLC的硬件、软件体系结构都是封闭的而不是开放的。在硬件方面,各厂家的CPU模块和I/O模块互不通用,各公司的总线、通信网络和通信协议一般也是专用的。编程语言虽然多用梯形图,但具体的指令系统和表达方式并不一致,因此各公司的PLC互不兼容。为解决此问题,国际电工委员会IEC1994年5月公布了PLC标准(IEC1131),其中的第三部分(IEC1131-3)是PLC的编程语言标准。标准中共有五种编程语言,顺序功能图(SFC)、梯形图、功能块图、指令表和结构文本。除了提供几种编程语言可供用户选择外,标准还允许编程者在同一程序中使用多种编程语言,这使编程者能够选择不同的语言来适应特殊的工作。几乎所有的PLC厂家都表示在将来完全支持IEC1131-3标准。
4 与其他工业控制产品更加融合
PLC与个人计算机(PC)、分布式控制系统(DCS,又称集散控制系统)和计算机数控(CNC)在功能和应用方面相互渗透,互相融合,使控制系统的性价比不断提高。在这种系统中,目前的趋势是采用开放式的应用平台,即网络、操作系统、监控及显示均采用国际标准或工业标准。
(1)PLC与PC的融合
PC的价格便宜,有很强的数据运算、处理和分析能力。目前PC主要用作PLC的编程器、操作站或人/机接口终端。
将PLC与工业控制计算机有机地结合在一起,形成了一种称之为IPLC(Integrated PLC,即集成可编程控制器)的新型控制PC的价格便宜,有很强的数据运算、处理和分析能力。目前PC主要用作PLC的编程器、操作站或人/机接口终端。
将PLC与工业控制计算机有机地结合在一起,形成了一种称之为IPLC(Integrated PLC,即集成可编程控制器)的新型控制装置,其典型代表是A-B公司与DEC公司联合开发的金字塔集成器(Pyramid Integrator)。它由A-B公司的大型PLC(PLC-5/250)和DEC公司的Micro VAX计算机组合而成,放在同一块VME总线底板上。可以认为IPLC是能运行DOS或Windows操作系统的PLC,也可以认为它是能用梯形图语言以实时方式控制I/O的计算机。
(2)PLC与DCS的融合
DCS(Distributed Control System)指的是集散控制系统,又叫分布式控制系统,主要用于石油、化工、电力、造纸等流程工业的过程控制。它是用计算机技术对生产过程进行集中监视、操作、管理和分散控制的一种新型控制装置,是由计算机技术、信号处理技术、测量控制技术、通信网络技术和人机接口技术竞相发展、互相渗透而产生的,既不同于分散的仪表控制技术,又不同于集中式计算机控制系统,而是吸收了两者的优点,在它们的基础上发展起来的一门技术。
集散控制系统具有通用性强、系统组态灵活、控制功能完善、数据处理方便、显示操作集中、人机界面友好、安装调试方便、运行安全可靠等特点。它由集中管理部分、分散控制监控部分和通信部分组成。集中管理部分又可以分为工程师站、操作员站和管理计算机。工程师站主要用于编程组态和维护,操作员站用来监视和操作,管理计算机用于全系统的信息管理和优化控制。分散控制监测部分按功能可以分为控制站、监测站或现场控制站。通信部分主要由数据通道和各个站的通信模块组成,它连接系统的各个分布部分,完成数据、指令及其他信息的传递。集散控制系统的软件由实时多任务操作系统、数据库管理系统、数据通信软件、组态软件和各种应用软件组成,使用组态软件可以生成用户要求的应用程序。
PLC日益加速渗透到以多回路为主的分布式控制系统,这是因为PLC已经能够提供各种类型的多回路模拟量输入、输出和PID闭环控制功能,以及高速数据处理能力和高速数据通信联网功能。西门子公司的SIMATIC PCS是具有PLC功能的新型集散控制系统,该系统集电气控制、过程控制和系统管理于一身,把批量控制、连续控制、高速逻辑控制、高级运算以及管理集成于一体。其灵活的系统扩展性、基于UNIX操作系统和X-Windows的图形环境、开放的“客户/服务器”结构,使用户可以根据过程本身的特点,而不是根据控制设备的功能来选择控制方式。
(3)PLC与CNC的融合
计算机数控(CNC)已受到来自PLC的挑战,目前PLC已经用于控制各种金属切削机床、金属成形机械、装配机械、机器人、电梯和其他需要位置控制和速度控制的场合。过去控制几个轴的内插补是PLC的薄弱环节,而现在已经有一些公司的PLC能实现这种功能。如三菱公司的A系列和An S系列大中型PLC均有单轴/双轴/三轴位置控制模块,集成了CNC功能的IPLC620可以完成8轴的插补运算。
5 与现场总线相结合
现场总线(Field Bus)是连接智能现场设备和自动化系统的数字式、双向传输、多分支结构的通信网络。现场总线以开放的、独立的、全数字化的双向多变量通信代替0~10m A或4~20m A现场电动仪表信号。现场总线I/O集检测、数据处理、通信为一体,可以代替变送器、调节器、记录仪等模拟仪表,接线简单,只需一根电缆,从主机开始,沿数据链从一个现场总线I/O连接到下一个现场总线I/O。
现场总线控制系统将DCS的控制站功能分散给现场控制设备,仅靠现场总线设备就可以实现自动控制的基本功能。例如将电动调节阀及其驱动电路、输出特性补偿、PID控制和运算、阀门自校验和自诊断功能集成在一起,再配上温度变送器就可以组成一个闭环温度控制系统。
PLC与现场总线相结合,可以组成价格便宜、功能强大的分布式控制系统。一些主要的PLC厂家将现场总线作为PLC控制系统中的底层网络,如Rockwell公司的PLC5系列PLC安装了Profibus(过程现场总线)协处理器模块后,能与其他厂家支持Profibus通信协议的设备,如传感器、执行器、变送器、驱动器、数控装置和PC通信。西门子公司的PLC也可以连接Profibus网络,如该公司的S7-215型CPU模块能提供Profibus-DP接口,传输速率可达12Mbit/s,可选双绞线或光纤电缆,连接127个节点,传输距离为9.6km(双绞线)/23.8km(光纤电缆)。Schneider公司的Modicon TSX Quantum控制系统的Lon Works模块可用于实时性要求不高的场合,如楼宇自动化控制。
6 通信联网能力增强
PLC的通信联网功能使PLC与PC之间以及与其他智能控制设备之间可以交换数字信息,形成一个统一的整体,实现分散控制和集中管理。PLC通过双绞线、同轴电缆或光纤联网,信息可以传送到几十千米远的地方。
可编程 篇8
键盘;显示;扫描;接口;驱动
[中图分类号]TP33[文献标识码]A [文章编号]1009-9646(2011)06-0022-02
一、引言
在单片机的实验以及实际开发项目中,LED数码管显示及键盘输入是非常常见的应用。该系统的设计也是开发人员经常遇到的问题。LED数码管显示系统主要有两种常用系统:CPU扫描方式显示系统和用可编程显示接口芯片组成的显示系统。前者接口电路简单,成本低,但程序设计麻烦且占用CPU资源高。本文介绍的是基于后者的系统。
二、8279键盘/显示接口分析
8279是为8位微处理机设计的通用可编程键盘和显示I/O接口芯片。它的特点是硬件扫描键盘和显示器,能同时执行键盘与显示器操作。接收键盘输入数据和控制显示器显示CPU给定的数据是8279的两个基本功能,它的工作方式由CPU通过编程设定,8279的逻辑符号和引脚如图1所示。其主要引脚功能分析如下。
1.数据线
DB0~DB7:双向三态数据总线,在接口电路中与系统数据总线相连,用于传送CPU和8279之间的数据和命令。
2.地址线
/CS=0选中8279,读写有效,当A0=1时,为命令字及状态字地址;当A0=0时,为数据地地址,故8279芯片占用2个端口地址。
3.控制线
CLK:外部时钟信号输入线。8279通过内部定时器将该信号分频为内部时钟(100KHz)。
IRQ:中断请求输出线,高电平有效。
/WR:写输入控制线,低电平有效。
/RD:读输入控制线,低电平有效。
SL0~SL3:扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线。
RL0~RL7:回复输入线,用来作为键盘或传感器矩阵的信号输入线。
OUTA0~OUTA3:通常作为显示信号的高4位输出线。
OUTB0~OUTB3:通常作为显示信号的低4位输出线。
/BD:显示熄灭输出线,低电平有效。当/BD=0时将显示全熄灭。
三、键盘/显示驱动电路设计
图2所示是基于8031单片机应用系统的键盘/显示驱动电路。8279的DB0~DB7接8031P0口,与CUP完成数据和命令的传输。A0与/CS分别接8031P2.0和P2.6,进行地址控制。CLK端接ALE,通过分频得到内部时钟。IRQ经反相后接8031外部中断1输入端/INT1,用于键盘中断。
OUTA、OUTB口显示数据输出线分别与2个7406驱动器输入端相连,经反相后作为LED段选信号驱动LED数码管。
SL0~SL2扫描输出线接在3~8线译码器74LS138的输入端,8位输出中2位用于键盘扫描输出线,同时8位输出经75451驱动后,作为8路七段LED数码管位选驱动信号。
来自RL0~RL7的8路回复信号,由回复缓冲器缓冲并锁存。在键盘工作方式中,回复线作为键盘扫描输入线。在逐行列扫描时,回复线用来搜索每一行列中闭合的按键。当某一按键闭合时,去抖电路被置位,延时等待约10ms后,再检测按键是否继续闭合,并将该键的地址、控制状态一起形成键盘数据送入8279内部FIFO存储器,同时IRQ发出中断请求。对于键值的读取可采中断方式,也可采用查询方式。
四、程序设计
在实际应用中,有关8279工作的软件一般应包括三个程序,即初始化子程序、中断服务子程序和显示子程序。其中初始化子程序用于设定8279的工作方式,中断服务子程序完成按键的识别与处理,显示子程序将显示缓冲区的数据送数码显示器显示输出。现设LED数码管为8位,左端输入;键盘为16键,编码扫描,双键互锁模式;8031工作频率为12MHz。下面给出相应的C语言编写的程序。
#include
#include
#define C8279XBYTE[0x4100]
#define D8279XBYTE[0x4000]
uchar code table[]={0xc0, 0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88, 0x83,0xc6,0xa1, 0xc6, 0x8e};
unsigned char keyval;
void init8279(void)
{
C8279=0x34;C8279=0x01; C8279 = 0xdc;
}
void view8279(void)
{
C8279=0x90; D8279=table[keyval];
}
void getkey(void) interrupt 2
{
C8279=0x40; keyval=D8279; view8279();
}
void main(void)
{
init8279();
EA=1; EX1=1; IT1=1;
while(1);
}
[1]何立民.MCS-51系列单片机应用系统设计[M].北京航天工业大学出版社,1990.
[2]李华.MCS-51系列单片机实用接口技术[M].北京航天工业大学出版社,1993.