完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
其实际,PLC就是一个完整bai的单片机系统du,你可以把它形像化为一zhi个功能专一的单片机开发板dao.
这个单片机开发板由电源+单片机+继电器或MOS管+端子等等组成. 现在的PLC,多用32位单片机,也有16位,早很多年前的PLC,还有用8位的,比如西门子曾经用的是51单片机. 而梯形图烧录到PLC后内正常运行,是因为PLC的开发软件,把梯形图通过电脑运算,转换成了二进制的机器语言,然后烧录的PLC内部的单片机或者PLC内部的Flash里去了,这点,和你用单片机编程没有什么特别区别. 而你在编写单片机的时候,一般来说是需要硬件图的,我说的是一般,有一种情况不用,那就是,有人把单片机的底层给编写好的,你不需要关心底层驱动是怎么实现的,只需要知道怎么用就行了.在这种情况下,你不需要知道硬件如何实现,就不需要看硬件电路. 举例: unsigned char Output_Y00 = 0,Output_Y01 = 0; //-----这是底层函数------------------------------------- void Output_Process(void) { if(Output_Y00) P1_0 = 0;//---打开第一路输出 else P1_0 = 1;//---关闭第一路输出 if(Output_Y01) P1_4 = 0;//---打开第二路输出 else P1_4 = 1;//---关闭第二路输出 } 上面的例子,在编程的时候,如果是分层编程,即一个人写逻辑,一个人写底层,你是看不到那个 Output_Process()的存在的,因为编写底层的人给封装起来了,你可能只看到一个库. 但是他同时也给你留下了接口,就是 Output_Y00,Output_Y01,你通过这两个变量,就能操作 输出口的驱动,同样的道理,什么AD,DA,串口,都是一个样,把底层封装起来,然后由另一个人操作接口变量就行了 这就是单片机分层编程的概念. 而PLC也是基于这种概念,PLC厂商已经把底层做好,并且封装起来了,你在电脑上的梯形图,只是做逻辑控制,等你做好了,翻译成特定的代码,再联合厂商做好的底层,一直编译成二进制机器码,下载到PLC的单片机里. 编程bai语言是思想不一样。梯形图是拷贝继电器系du统而来的,它用的最多的是常开zhi、常闭等dao通断概念。C语言可是没有导通,关闭,常开、常闭的东西。梯形图里有步进指令,并行处理等,C语言里没有。为什么单片机不那样做?那你得问问什么PLC要那么做了。因为它最初设计出来是给电工看的,就是那些懂继电器系统的工程师,但是它们不懂什么计算机语言啊,而单片机就不同了,懂得单片机的几乎都懂计算机,没有人再去学继电器系统。如果你要问为什么PLC不用C语言编写程序,我觉得这确实是一个值得讨论的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
2514 浏览 0 评论
1088浏览 2评论
701浏览 1评论
454浏览 0评论
196浏览 0评论
335浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 18:19 , Processed in 1.244219 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号