|
楼主 |
发表于 2009-11-21 19:17:23
|
显示全部楼层
Big happy:
昨天,heky讲以后送我个东西,我高兴的失眠了好长时间。
对于我自己认为很难的事情(虽然在大家看来很简单),一下子看到曙光真的好高兴。
heky, 要是你在为公司做事的话,你就别送我了;我就买你们的东西,你美艳几句
(以你们最最便宜的价格,给批发商/合作伙伴那种)。
步入正体
-------------------------------------------------------
Re: 【43楼】 heky
其实我觉得所有版本都是解释型。编译型是快,但在logo这个级别,速度还不是主要的吧。用解释型就把自己框死了。
Ref:【42楼】 neiseng
我觉得LOGO Soft是那种一次翻译型的,但绝对不是解释性的,也和传统的编译有很大的差别.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#######################################################################################
Re: heky
这个说法,是我表义不清;我自己也觉得这样讲很糊涂;我把上面这句改了吧。
原来我想表达的意思是想说 [PC(LOGOSoftComfort)<-->LOGO!]/[*.lsc <--> LOGO!内部数据]
的过程。
对于LOGO!(硬件设备)的执行机理,我比较倾向解释型,heky你讲的原因我也觉得有道理(干什么
要把自己框死呢,)。
要是说确定LOGO!(硬件设备)是解释型,直接执行型的,我也很迷惑。
其实LOGO!内部是怎么实现的,和防制它没什么关系。我还是集中精力干别的吧,不想这个问题了。
不过,我想把我迷惑的地方列出来;看看大家是怎么想的,或者指出我理解的错误(很期待)。
=======================================================================================
LOGO!是解释还是直接执行??
~~~~~~~~~~~~~~~~~~~~~~~~~~
参考:
-----------------------8<---------------------------
欧姆龙的ZEN文档(ZEN-V2 Datasheet L016-CN5-01 第33页):
|-||--||--||--O-| ZEN一行最长是这样的,
| | ZEN执行过程是按行扫描。
|-||--||--||--O-|
| | 欧姆龙SYSMAC PLC执行过程
|-||--||--||--O-| 是按 Z 扫描。
| |
----------------------->8----------------------------
西门子的LOGO!由FBD-->T图,也类似于上图,行长严格受限。
假定:
1.猜测LOGO!的执行过程也是按行扫描。
2.西门子是专门作PLC的,积淀很深,实现/采用专门的 ALU很有可能。
比较迷惑:
1.假如(一个指令编码4bit + 操作数据16bit)最少20bit,那么 20x4 = 80bit;
??超长指令字CPU,觉得不太可能。
* 指令编码4bit:[基本的布尔运算+LD OUT etc ]。
(以前的 MC14500 ICU就是这样的)
2.这些PLC的ALU有>4个寄存器, 分次将数据放到各个寄存器,4bitx4的16bit指令
编码放到ALU的操作输入,一次完成一行的计算/操作。
??多个位片处理器,??CPLD
总之觉得这个(??执行单元)和 我理解的处理器不太一样;觉得LOGO!像是多个
处理器/CPU+CPLD组合的。是一种混合结构。
要是假定不成立,那么解释型的就能说通了。
--------------------------------------------------------------------------------------
[PC(LOGOSoftComfort)<-->LOGO!] / [*.lsc<-->LOGO!内部数据]
的实现机理??
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
依据:
1.PC-->LOGO! 和 LOGO!-->PC 看到的FBD图是不一样的。
2.LOGO Soft Comfort文档(*.lsc),没有发现地址数据。
3.相同的器件0BA0,0BA5有些是不同的(exp:增/减计数器);在v6 LOGO Soft Comfort下
将LOGO!0BA0数据下载到LOGO!0BA5,此时 LOGO Soft Comfort会将LOGO!0BA0不同的
FBD代码转换为LOGO!0BA5支持的。
4.LOGO!内部数据存储格式很特殊,在0BA0--0BA3更怪异;
猜测:LOGO!用特殊的方式运行。
假定:
1.LOGO Soft Comfort 中的各种(FBD...)描述是类(对象/物件)。
2.FBD基类(包括布局);
FBD基类包含 各个FBD类 功能/数据的纯虚函数;
各个FBD类 实现上述功能/数据。
3.连线类(包括布局)。
4.实例化 各个FBD类 和连线类。
结论(猜测):
1. 这个过程类似于汇编->可执行代码/可执行代码->反汇编,但不相同。
2. LOGO!-->PC ,
a.在PC 内存暂存读到的[0C14-0D18]数据,
构建各种输出FBD实例 (用读到的[0E20-0EE8]数据),
构建功能块FBD实例 (用读到的[0C14-0D18],[0EE8-16B7]数据),
构建各种输入,标示,etc.. FBD类实例,
构建连线类实例,
b.创建LOGO Soft Comfort视图;自动布局FBD,建连线(包括剪切..)/
c.在保存*.lsc文档时,保存的是类的实例/
3. PC-->LOGO!
LOGO Soft Comfort 由类的实例
LOGO!-->PC的过程每构造一组实例,都需要扫描几部分数据,
这一组实例各个参数(实例内数据)可以在一次扫描中确定,无需回朔/再次扫描。
感觉传统的翻译,一次扫描中就可以创建各个实例。
传统的编译,会词法啦.文法啦....,还有些(实例内数据)要做计算才能确定。
PC-->LOGO!类似上.
... ...想着想着,自己又糊涂了;算了不在这里浪费脑细胞了。
=======================================================================================
下一楼 小更新一下:
[更改/刊误/未决/待验证]
基本先到这里了,基本原理很简单,剩下的就是苦力工作了;
大家:Who感兴趣可以去试一下,也可以把它完善;
我写的不好(表义不清,语义混乱,用语不规范/统一 ... 诸多问题)
有些要自己实做一下+猜,才好知道我在说什么;万望大家莫全信,带着怀
疑的态度作为参考; 大家群策群力,互为斧正。
希望对研究LOGO!的人有帮助,我近期要干其他一些事情了,只要有
时间我就来看看。 |
|