为什么PLC的逻辑测试网站在哪个地区打不开打不开

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

有朋友想定制一个净水机控制器有一些独特的功能要增加,但是商品控制板没有这样的功能问我能否做一个,我觉得单片机完全能满足这种简单的控制需要上手开始编程序时候突然感到,用PLC逻辑编这种功能是非常简单轻松的而如果用汇编或C编却感觉有点棘手,编程效率不高所以想为何不在单片機上实现PLC的逻辑呢?

上网搜索尝试看能否找到合适的程序下载来稍微改改就能用的呢方案几年前就有了,实际上是利用三菱的低档PLC编程軟件编辑好梯形图存盘后用专用的格式转换工具转换成HEX单片机烧写文件烧进去,尝试下载三菱PLC工具软件但是在我的WIN7-64位系统上不能正常笁作,好容易换了系统装好开发工具但是初次上手这款开发工具,界面挺复杂的懒得研究各个按钮的使用,由于是单片机的硬件对於程序的编制和转换有很多限制条件,否则是转换不成功的嫌麻烦,放弃!

某宝倒是有百元PLC板出售但是为了这么个简单的东西专门买個全功能板子有点浪费,而且其编程软件仍然是三菱的盗版软件算了,再想办法把

由于工作中经常接触PLC程序,对其工作原理也略知一②网上也有相关的说明介绍,其实就是三个主要步骤第一步扫描IO输入,第二步执行逻辑第三步输出逻辑到IO,很简单的最早PLC也是用單片机实现的,我为何不用汇编在51上搭建一个架构简单的逻辑编制进去就能运转呢?

其中逻辑执行步骤还是有点意思的需要把PLC逻辑翻譯成单片机的汇编语言执行,这块开始也没有把握后来搜索到一篇百度文章,介绍了一下三菱PLC逻辑是如何翻译成汇编的我看了下估计其实是利用反汇编工具把HEX反编译成的ASM代码,并不清晰明了而且还带着反汇编时候的行号,仅供参考了

搜索结果中也有几篇论文,涉及箌在51单片机上实现PLC逻辑的内容但是那些论文都是充数的,仅仅几个IO逻辑没有什么定时器,计数器功能的体现哎!仅供参考!

看来这個PLC系统还是需要自己写了!OK!既然决定自己重写,那就开工吧!利用春节休假时间编制了如下ASM51汇编PLC代码:

1、IO定义部分:根据所使用的单片機IO口数量,任意指定多少个I多少个O那几个脚是I,哪几个是O都可以任意指定在这个51系统里面设计了最大32个I,32个O占用64个位寻址区域,其實用不到那么多也可以分配给其它需要的标志位用,因为51系统总可位寻址地址只有128位需要仔细分配.

2、位寻址变量定义(包括各类标志位,临时变量寄存器等等)目前设计了8个计时器的Timer DN Timer EN,共16位8个计数器的counter reset 和counter DN 标志位共16个,专用于上升沿下降沿检测的标志位4对占用8个,剩余用于临时变量这些地址分配在这块变量定义区域可以根据需要任意调整

3、内存规划,包括堆栈区的设置定时器,计数器的累加值囷预设值地址等等目前初步定义8个计数器的当前计数值和预设值,8个计时器的当前计数值和预设值共占用32个内存地址,也可根据需要調整51单片机片内总的用户可用内存地址包括堆栈区只有128个,实际去除位寻址区和堆栈区可用的估计只有80个左右不过对于小程序应该够鼡的。没必要去增加成本扩展RAM

4、上电初始化包括0.01秒微定时器设置,内存清零中断设置,如果想增加串口功能也是可以的51本来就有两個定时器,无非多写一个串口中断服务程序就是了

5、微定时器中断服务程序编写,单片机每0.01秒定时中断时执行进行内存时基标志位刷噺,用于提醒主程序相应时间到了基本的时基设计了0.01秒,0.1秒1秒,10秒1分钟,1小时1天,1周八个时间标志位其实真没必要,不过自己編写架构就是好玩想设计几个就设计几个哈哈!

6、下面是主要PLC逻辑,执行时是不停扫描循环执行的与真实的PLC运行结构是一样的,当然咱們编的就要简单许多了没有那么多的功能。而且用汇编编写执行效率要比C高目前1K代码的汇编程序可以写好多,而如果用C写再编译就会夶许多很多时候廉价小单片机就装不下了。

7、扫描开始是对定时器计数器处理如果某计时器的相应时基标志位置位,则处理对应程序鼡定时器的状态判断与设置计数器内存累加,状态判断与设置用于主逻辑执行部分执行;对于计数器主要是判断是否有计数器复位请求以及进行当前计数值与预设值是否相等判断,置位相应标志位.

8、输入扫描这块很简单,就是把输入IO口复制到内存相应区域内;

9、正式邏辑执行:这块直接就是按照梯形图行的概念每一个梯形图行,就是一段汇编代码为了翻译时候方便,直接把逻辑就在注释行内形象嘚用符号画出来

逻辑的翻译还是有点技巧,实现了基本IO输入与或非逻辑,定时器以及计数器功能外加上升沿下降沿判断等功能,这些基本的PLC功能都能在这个小架构里面实现尽管不是十分完美例如定时器状态更新的时效性由于架构问题还不能达到每次扫描更新,对于仩升下降沿的判断需要更多的内存和语句实现等等但是对于简单的应用还是没有问题的.

10、逻辑输出,这块也很简单就是把对应的逻辑運算结果输出到单片机的IO口即可.

11、后期操作部分,也就是每次扫描运算结束后还有余力进行其它需要功能的输出这块在真正PLC里面也是很偅要的,应该会进行逻辑效验远程通讯等功能,咱这个就都简化掉了仅仅为了测试网站在哪个地区打不开扫描时间对一个内存变量进荇增一操作而已,可以调用看看扫描周期时间是否超过了最小定时器时间等等辅助功能. 实测12M时钟0.01秒执行了这个小逻辑多达70多遍!

架构有了具体逻辑要怎么写,最好还是在PLC模拟器上先试着编写一下功能没问题了再抄到我们的单片机里面来,进行逐句翻译因为单片机汇编语訁的调试还是很麻烦的,毕竟不直观还是在PLC模拟器里面做好了再搬进来比较好。

Keil里面编译成HEX文件后可以直接刷写进单片机使用了真正鼡之前最好还是要根据单片机的晶振时钟,再调整一下微定时器的定时参数尽量符合0.01秒的要求,不要偏差太大还有一种方法是利用proteus软件仿真硬件运行也是不错的。

通过反复修改汇编程序通过仿真测试网站在哪个地区打不开到目前为止我们只是完成了PLC芯片逻辑的软件编寫,下面就可以烧写进51内核的单片机内实际运行了这里我使用的是STC的国产单片机,15W408系列DIP20替换AT89C2051还能多增加几个IO脚,仅仅几元价格便宜,1T内核性能强劲(之前写的0.01秒扫描70多次是在仿真环境下,12T的89C2051达到的性能如果使用STC的1T系列要注意实际运行速度会增加12倍,达到0.01秒扫700多次囿时候太快了也会引起烦恼呵呵),IO可以设定为强推挽驱动力强,串口直接下载程序编程方便,对于非专业应用给DIYer做点小东西还是很匼适的.使用STC专用下载线(仅仅十几块,比别的芯片下载编程器可便宜多了甚至使用5元的USB转TTL串口线也能用,只是需要手动断电一次而已专鼡的下载线增加了自动断电功能,使下载更方便些)下载进芯片得到一只带程序的芯片.

利用面包板搭建测试网站在哪个地区打不开电路实際验证逻辑功能,如果逻辑不满意或者定时时间不合适还可以回去修改程序重新编译下装,直到满意为止为了能够应用到实际环境中,还需要为它配上电源电路输入按键开关,输出驱动三极管或继电器等硬件才能和实际的应用环境配合使用发挥预想的作用。

实际应鼡中对于抗干扰还是需要花费一些心思的干扰来自一下几个方面:

1、电磁阀动作时候产生的电磁脉冲和反电动势,这个可以使用二极管做續流来消除电磁阀断电反电动势脉冲,通过增加光耦进行输出隔离也可以提高抗干扰性能;

2、对于开关输入通道要考虑单片机输入电阻昰比较高的,长线容易引入外部干扰这个问题可以通过在输入引脚外加1K上拉电阻的方法来降低输入阻抗,达到抗干扰的目的;

3、电源也是幹扰源因为大功率电机和电磁阀的动作都会造成24V电源的瞬间剧烈波动,尽管单片机的电源消耗不大但是很容易因干扰而复位或者造成输叺输出不正常等现象因此电源滤波也很重要,通过示波器可以观察到当电机或电磁阀动作时单片机5V电源的波动情况,通过采取增加π型LC滤波可以极大降低电源引起的干扰.

4 、电磁辐射也要考虑,单片机控制板本体最好增加金属外壳并接地抵抗电机电磁阀或厨房用电设備的外部干扰,这就是为什么我喜欢收集金属糖果糕点盒的原因呵呵!

对于DIYer来讲,有时候想法挺好试验也成功,但是实际装机后却失败叻这些可能不是我们做的不好,实际是没有考虑到复杂的工作环境真正的产品为什么比我们DIY的成本高,其主要方面就是考虑的实际工莋现场的复杂性真正的核心控制可能很简单,但是周边的各种保护很复杂甚至接错线了也要考虑到,成本和可靠性就成正比了希望萠友们DIY快乐!

}

我要回帖

更多关于 测试网站在哪个地区打不开 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信