|
SPLC设计解析 (一)
SPLC 不是想象中那样简单, 整体成是流程如下说明
一.计算机部份
1.使用者使用 PLC_MAP 阶梯图程序填入控制图.
2.计算机将图形编译后将他转成 SPLC 文字语言.
3.SPLC 文字语言二次编译将他转成 SPLC 代码.
4.这将有一指令空间变化, 一各图形程控可能有若干个 SPLC 指令,或是一个.
5.每各SPLC指令站 一个到二个 Byte.
6.计算机将转换后的 SPLC 指另代码烧入 SPLC.
二.SPLC 运行部份
1.程控扫描程序开始由RUN扫描.
2.SPLC 程序解译器到使用址空间提取 SPLC 指令.
3.将指令<直视翻译>执行.
4.程控扫描程序扫描至END重回RUN并通知I/O转换程序.
三.I/O 转换程序 ( 这部分是由时间中断处理 )
1.由程控扫描程序END 通知后启动.
2.每逢2-10ms I/O刷新时间对应I/O 刷新.
3.每逢2-10ms I/O刷新时间对应电源调整依次.( 软件稳压概念 )
4.每逢2-10ms I/O刷新时间对程序监控比对一次.( 程序跑飞监控 )
5.每逢2秒时间对应程控扫描程序比对一次. ( 看门狗当机处理 )
四.***闪烁处理 ( 这部分是由时间中断处理 )
1.***器以基准时机 TBASE 倒数计时.
2.闪烁器以基准时机 TBASE 循环倒数.
五.MODBUS 处理部份 ( 以通讯中断为中断处理 )
1.接收以接收中断引发, 并在SPLC 运行中中断切入处理.
2.发送以发送中断引发, 并在SPLC 运行中中断切入处理.
3.MODBUS 485 硬件处理程序以时基 2ms 中断监控 ( 这部分是由时间中断处理 )
4.基于Lvnet总线MODBUS协议冲突机制处理, 这部分再发送8Bit于第9Bit读回发送缓冲判读 ( 参考智国第八期通报 ).
六.带电拔插处理部份 ( 这部分***是SPLC精华,难度指度***高 )
1.每逢2ms 对电源上下压检知并符合SPLC工作承受.
2.当I/O非在由程序变动变化既判断为拔插动作.
3.当拔插引起中断将锁住运行. ( 拔插可能是某脚瞬间通电或是反向 )
4.一但状况***既重新运行.
SPLC 虽然小, 但是PLC该有概念都融合进去, 绝非是用51汇编整合崁入.
51汇编崁入***大缺点是扫描一程序其时间很长, 标准 PLC是有一翻译器(不管是软翻译器或是应翻译器), 因为没翻译器只用汇编转翻PLC其效率很低; 当机率也高. 因此; 开发PLC必须先在自己指令上下手.
SPLC 核心属于51 CPU, 翻译这部份软件我门使用51指令一些特性所以能在很精简的范围下快速有效做成PLC. SPLC 但MODBUS及动态联结51***程序其指令使用3.1K Byte空间. 又因为SPLC为8K闪存CPU 因此使用者可以使用近5K空间.
这5K空间换成SPLC指令则可以足足真正使用3500步以上 ( 平均 ). 如果坎入51指令则不需注意51指令空间. 这与一般用汇编转译PLC方式空间上差异很大.
许***LC所说指令 0.5us, 倘白说都是***的, 因为都是拿 CPU一个执行指令来说, 但一个PLC指令***不可能用一个CPU指令来作完; 因此我门也成时公布我门一个SPLC指令时间是8us-16us.
|