首页 上一页 1 2 3 下一页 尾页

[原创]IEC61131-3标准及其实现 点击:6138 | 回复:51



东方剑

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:223
  • 注册:2004年2月04日
发表于:2005-12-18 20:07:00
楼主
IEC61131-3标准的基本概念和定义

   IEC61131-3对下述三个方面进行了描述和定义:1、块的概念,2、PLC的配置,3、编程系统应具备的基本功能。
一、块的概念
由POU(Program Organization Unit)构成的程序和项目称之为块(Blocks),POU与传统PLC世界中的程序块、组织块、顺序快、功能块相对应。
IEC61131-3标准的一个非常重要的目的就是限制块的种类及其隐含的意义,以便统一和简化它们的用法。为此,标准定义了三种类型的POU,分别如下:

POU类型 意义
程序(PROG) 主程序,包括指定的I/O、全局变量和存取路径
功能块(FB) 拥有输入/输出变量的块,是最常用的POU类型
函数(FUN) 带有函数值的块,作为PLC基本操作集的扩展
三种POU的区别在于:
函数(FUN)  函数POU可以指定参数,但没有静态变量也就是没有存储空间,在用相同的输入参数调用函数时总是返回相同的结果。
功能块(FB) 功能块POU即可以指定参数,也有静态变量,在用相同的参数调用功能块时,返回值取决于内部变量和外部变量,并能将内部变量保持到下一个执行周期。
程序(PROG) 此类POU代表“主程序”,整个程序的所有变量(包括指定的物理地址)都应该在此POU(或资源、配置)中声明,其他方面与功能块POU类似。
POU 是个封装的单元,可以独立地编译,并作为其他程序的部件,经编译的POU可以连接在一起组成完整的程序。
POU 的名字在整个项目中是唯一的、全局的。局部子程序在IEC61131-3中是禁止的,经编程之后的POU,其名字和调用接口对项目中其他所有的POU是已知的。
POU 的这种独立性大大方便了自动化任务的模块化以及可以重复使用已经获得良好测试和执行的软件单元。
编写PLC程序实际上就是构造功能块(FB)和程序块。大多数情况,PLC已经预先构造和测试好了大量的功能块(如:定时器和计数器),用户只要将系统提供的功能块按照逻辑要求组织成程序即可。
编写POU的语言种类
   IEC61131-3推荐了五种语言来构造POU,分别是:IL(Instruction List)-指令表、FBD(Function Block Diagram)-功能块图(或方块图)、LD(Ladder Diagram)-梯形图、SFC(Sequence Function Chart)-顺序功能图,ST(Structured Text)-结构化语言。
   每一种语言都有其优点和适用的人群,梯形图直观明了,为大多数的工程人员所喜用,是编写PLC的首选语言。
POU之间的关系
 (1), POU 可以互相调用;
 (2), 禁止递归调用;
(3), 梯形图(LD)、方块图(FBD)、顺序功能图(SFC)通常是能相互转换的;
(4), 由梯形图(LD)转换成的指令表(IL)通常也可以由指令表(IL)转回梯形图(LD);
(5),用指令表(IL)编写的程序块通常是不能转换成梯形图(LD)的,除非结构很简单。
(6),用结构化语言(ST)编写的程序块不能转换成其他四种的任何一种。
标准函数
IEC61131-3只定义了约46个函数,分别是:
数字运算 ABS、SQRT、LOG、LN、EXP、SIN、COS、TAN、ASIN、ACOS、ATAN;
算术运算 ADD、SUB、MUL、DIV、MOD、EXPT、MOVE;
位移与位运算 SHL、SHR、ROR、ROL、AND、OR、XOR、NOT;
选择   SEL、MAX、MIN、LIMIT、MUX;
比较   GT、GE、LT、LE、EQ、NE;
字符串操作 LEN、LEFT、RIGHT、MID、CONTACT、INSERT、DELETE、RAPLACE、FIND;
标准功能块
IEC61131-3只定义了5个功能块,分别是:双稳触发器、边沿触发器、定时器、计数器、通讯功能块;
实际的PLC中这些函数和功能块是远远不够用的。
 
二、PLC的配置
  用IEC61131-3推荐的语言(一种或多种)编写的程序型POU(程序块)通常是相互独立的,如何将各个程序块组成完整的程序就需要对程序块进行配置,IEC61131-3中引入配置元素的概念,通过声明和定义配置元素将程序块紧密地联系在一起。
  配置元素有四种,分别是:配置(Configuration)、资源(Resource)、任务(Task)和运行程序(Run-Time Program),它们之间是按层次划分的。
  四种配置元素的作用如下:
配置元素               描述
Configuration (配置)     定义全局变量(在本配置内有效)
                        组合PLC系统内的所有资源
                        定义配置之间的存取路径
                        声明直接表示的变量
Resource (资源)    定义全局变量(在本资源内有效)
                        给任务和程序指定资源
                        用输入/输出参数调用程序
                        声明直接表示的变量
Task (任务)    定义运行属性
Run-Time Program (运行程序) 给程序块或功能块指定运行属性

   直接表示的变量声明将整个配置映射到PLC的硬件地址,这些声明可以在配置级、资源级或程序级实现,POU通过外部变量声明存取这些变量。
   当将为所有的POU声明的直接表示的变量放在一起时就组成PLC应用的定位表。再重新布线时只要简单地修改这个表,将符号地址重新指到PLC的绝对地址即可。

  配置元素通常是以文字形式声明的。
配置元素之间的关系
   配置元素之间是按层次分级的,配置定义了资源和存取路径,资源定义了任务并将任务分派到PLC的物理资源,任务定义了程序运行时的属性,由此构成了完整的声明链。
三、PLC编程系统应具备的基本功能
创新的PLC编程系统应具备下列模块:
(1),语言编辑器;
(2),编译器、连



gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-12-19 11:53:00
1楼
尽管我不认同您实现PLC的方式,但您这篇IEC61131-3我还是给标精!
从两年前与您见过面,也见过您的成果,近来看您一直在向前努力,实在是国内工控的幸事,建议1点,如果说错了,请多指教,或当我乱讲了。
放弃解释型实现方式,改用编译型!因为您用解释型成本必然下不来,性能也必然上不去。

东方剑

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:223
  • 注册:2004年2月04日
发表于:2005-12-20 14:53:00
2楼
首先,谢谢您的建议。
其次,谈谈我的PLC。我的PLC是属于解释型的,硬件部分在国外就已经完成,最新设计的MX1B-20R1微型PLC采用Atmel的AVR单片机,速度也很快,性能也很稳定(在注塑机上连续运行几天)。至于成本,解释型与编译型应该是没有差别。
我现在的精力主要在编辑平台上,至于是解释型还是编译型并不是大问题,新的软件平台即可支持解释型也可支持编译型的PLC,新的硬件也将支持解释型或编译型的程序。

Newcore

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:131
  • 注册:2003年9月11日
发表于:2005-12-21 11:59:00
3楼
据我所知,解释型和编译型在CPU执行速度上还是有所不同吧,就像BASIC和C语言一样,请问您的MX1B-20R1微型PLC的基本指令周期是多少?

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-12-21 16:13:00
4楼
IO刷新()
内务管理()
取指()
switch
case指令:
......
位指令
编译型的比解释型的快15倍至20倍
硬PLC比编译型的快15至20倍
大家不要简单的用单指令周期时间来比较快和慢,要快,明天我就可以给你搞一个单指令周期0.01us的PLC出来,不要不信,不信的可以上门来,我当面做给你看。
要比速度就要看整体的速度,对特定的代码各种实现方式是效果不同的。
在功能块方面的差别不大,比方说一个1Mps的CPU,解释型的位指令或功能块的固定最小开销在100个单指令周期以上,编译型的在20个单指令周期以上,硬PLC是1个单指令周期至1/16指令周期。
大家可能会问为什么是1/16指令周期,这是因为硬PLC多是块并型持行,并且不需要“与”“或”“否”指令的运行,这一部分在每条指令的执行过程中就含带了,所以不需要另外的开支。
大家有兴趣的可以用一台海维深V80系列和一台S7200做对比,两种,前者是硬PLC,后者是软PLC,先将单扫描的时间去掉,前者的晶振是24M,后者的晶振是33M
运行一种最能体现硬PLC的代码
所有指令用节点指令,进行线与或者线或否。然后再将线或去掉再对比。
实测结果是S7200“与”“或”“否”都需要单独占时间,但V80不需要,同样的代码S7-200有线或和没有线或是有区别的,但V80没有区别,前后的时间开销相等。
软PLC是一种叫了N多年的东东,最早的来历是DCS,它在实现上相对比较简单灵活。目前主流的中高档PLC都是采用双CPU,一块位处理器用来运行节点指令,一块运行功能块和其它程序。这种结构最有吸引力的是可以运用这块位处理器来处理IO滤波、HSC、PTO、PWM中断子程序等,同时可以将外部接口合成在里面,简化外部接口提升整体性能。
海维深的中型PLC PPC31是解释型的,主要考虑要兼容AB的PLC5软件;
中型PLC PPC22是编译型的,可以用C自定义功能块;
中型PLC PPC11是硬PLC,
小型PLC V80也是硬PLC,与PPC11是同一软硬件平台。








东方剑

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:223
  • 注册:2004年2月04日
发表于:2005-12-21 19:04:00
5楼
现在还在争论解释型还是编译型PLC一点意义都没有,PLC关键是稳定,方便和易用。现在要作0.01us/步的PLC易如反掌。我用AVR 8位单片机都能做出小于5us/步的PLC,若用32位200MHz的CPU速度会是多少?我用FPGA已经实现<5ns/步的PLC。
还有一个问题,你掌握PLC的核心技术了吗?若掌握了,可喜可贺!
若仅仅是抄抄改改,又有多大的竞争力呢?我可以设计任意规模、任意价格的PLC。所有的原代码都是我自己的,可以任意裁减,我的编辑、调试平台可以支持PLC的任意工作方式,解释的、编译的,甚至是混合的。
我并不是要向你展示什幺,每各人都有自己的追求,你认为你的系统优越,你尽可大力去发展,最终市场会做出评判。
还是多留点时间研究核心技术吧!没有核心技术最终会被淘汰的。

sunwu

  • 精华:3帖
  • 求助:0帖
  • 帖子:11帖 | 256回
  • 年度积分:0
  • 历史总积分:365
  • 注册:2002年6月13日
发表于:2005-12-21 23:44:00
6楼
今天下载了一个PLC Studio Beta版,看得出来,东方剑在这个软件上是很用心的。提一点个人的建议:1、软件在运行时界面布局混乱,最好程序能先控制一个缺省的布局。2、个人认为,软件界面的布局简洁、实用是最重要的,一些不太常用的窗口完全可以在运行相关功能时实时打开。毕竟对于所有的用户而言,能够用到全部功能的的少之又少。个人见解,仅供参考。3、我运行了两次,都不一会儿就因为内存错误退出去了。测试版是可以理解的,如果你需要,我可以再试试将当时的操作、画面抓屏下来email给你。
非常高兴又看到一家国产的PLC!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-12-22 13:29:00
7楼
东方剑,你这么说就不合理了,本来这里就是技术的讨论。
您也上我公司来过,您实现方式的问题在一年多前我就同您说过了问题之所在。不知您现在是不是有所改进,所以我也没有说您的实现中具体那一点不好了,应该说这己是很客气了,难道还要把您一年前技术的老底都给说穿了。
至于我们的技术当然是全部自己掌握的,所有的核心技术都是自己的。只是对您的产品采用的技术方向不认同,所以才提出自己的一些看法,如果要讨论技术大家可以好好谈,如果您说我们的技术不是自己的那就太不礼貌了。
呵呵呵,为了证明这一点,改天我一天一帖将以前一个老版本的软PLC的方案全帖给各位,也用不着做成什么库文件了。从编译至底层的虚拟机的实现全套方案提供。大家可以在单片机上跑也可以改改放到PC上仿真仿真,反正是C代码移植起来也快。
做到这一步不过是软PLC实现中的最基本的部分,至于您说你用AVR 8位的单片机可以做至5uS只能让这边很多做软PLC的厂商笑了,因为了大家用51都可以做到1uS。
总之我建议您如果要讨论技术就不要怕痛,否则不如在家里自个开心好了。

东方剑

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:223
  • 注册:2004年2月04日
发表于:2005-12-22 17:41:00
8楼
从你的回帖中的:
   IO刷新()
内务管理()
取指()
switch
case指令:
......
位指令
我就可以看出来,你对PLC的内核如何运行还是没搞清楚,我记得到你公司,你问的也是这个问题,两年过去了,不知道为何没长进。
不要在这边吹牛了,你们公司的情况我也不是不了解,你说你用51可以1us/步的PLC我相信,因为最新的F8051速度可以达到100MIPS以上,比你的486快多了,也比我的AVR快多了。如果用标准的51你能做出1us/步的PLC,我给你10000元,如果你做不出,你给我10000元,来点真的如何?不要误导不知情者和初学者。
你说,你会发布原代码,那太好了,我在两年前已发布了一个,你现在也发布一个如何,不要欺骗网友啊!我可是等着你的原代码啊!

东方剑

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:223
  • 注册:2004年2月04日
发表于:2005-12-22 17:54:00
9楼
PLC Studio Beta 安装完后,第一次运行界面是比较乱,这是因为在安装程序中没有将各窗口的位置数据写入注册表中。
PLC Studio Beta 还有一些问题,还在改进中,谢谢sunwu!

王晟磊

  • 精华:12帖
  • 求助:0帖
  • 帖子:70帖 | 687回
  • 年度积分:0
  • 历史总积分:1173
  • 注册:2004年2月11日
发表于:2005-12-22 18:24:00
10楼
呵呵呵,这么样吧,同样的代码,我们用同样的CPU,你用你的实现方式,我用我的实现方式,我们比一比看谁快,OK,不看IO刷新、通信、只看虚似机的实现,至于说51当然不是说1Mps的,而是33M的6机器周期每指令周期的。
你两年前发的原代码,我只能用晕来表示,因为您还没搞明白到底什么是PLC。
连指令都是用ASIC码来表示的PLC,我也没办法说更多的了。大家学过软件的人都明白。
这两天我整理一个文章上来,是骡子是马明眼人一看就明白。

东方剑

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:223
  • 注册:2004年2月04日
发表于:2005-12-22 22:44:00
11楼
我谈的不是你的PLC快还是我的PLC快的问题,要比快你也比不过,我也经说过我用FPGA已经实现<5ns/步的PLC了。这就是你所说的硬PLC,直接执行PLC的指令,时钟250Mhz,一个周期一条指令,如何?
我两年前发的只不过演示罢了,可是你们公司看了,为什幺要邀请我去谈合作呢?而且在什幺都没谈的情况下,你就迫不及待地要看我的原代码,现在说晕,看来你这个人诚信是有问题,当时我只是觉得你很不礼貌,我找个理由,说文件打不开,给你一点面子。还好,你还知趣,没有再提出要看原代码,这事就过去了。我想你不会否认吧,当时是有很多人在场的。
现在就用你的33M的6机器周期每指令周期的51单片机,作一个1us/步的PLC给我看看如何,这已经是强化型的51单片机了。

王晟磊

  • 精华:12帖
  • 求助:0帖
  • 帖子:70帖 | 687回
  • 年度积分:0
  • 历史总积分:1173
  • 注册:2004年2月11日
发表于:2005-12-23 09:34:00
12楼
晕,和你这种人谈真是没意思,再次认真的对你说谈技术就谈技术,如果要人身攻击的话,还是请你换地方。
两年前你来我们公司从来就不是谈什么合作,这一点你不要搞晕了,当时是听一个同事在网上看到有一个人在做这个行业,我们想招聘过来做软件开发,但是见过面后发现不合适所以做罢。要不要我把你当时传过来的简历发上来啊。
你的库文件我也没想过要看,只是看了你的主文件并且和你谈过后真知道你并没有真真了解什么是PLC,而只是站在一个局外人的角度去猜测,你的主文件可能在网上还可以找到,有心的人可以看一看,多的我也不说了

王晟磊

  • 精华:12帖
  • 求助:0帖
  • 帖子:70帖 | 687回
  • 年度积分:0
  • 历史总积分:1173
  • 注册:2004年2月11日
发表于:2005-12-23 09:40:00
13楼
找了找,找到你的所谓的PLC原文件了贴出来大家看一看,我也不解释了,你以后再发贴我也不回了,明眼人懂技术的人一看就明白了.
下面这个文件是他的指令定义
/*
*********************************************************************************************************
*                                     uPLC

*                   Using the Keil uVision2 compiler
*

* File : Program.h
*********************************************************************************************************
*/
#ifndef        _PROGRAM_H_
#define        _PROGRAM_H_
//////////////////////////////////////////////////////////////
char code Program[]=
{
    "@LD 0.00,"
    "@LD C0,"
    "@OR 0.01,"
    "keep 1.00,"
    "LD 9.01,"
    "OR 1.01,"
    "!AND 9.07,"
    "OUT 1.01,"
    "LD 1.00,"
    "!AND 1.01,"
    "OR 9.01,"
    "!AND 9.02,"
    "OUT 9.01,"
    "LD 9.01,"
    "AND T1,"
    "OR 9.02,"
    "!AND 9.03,"
    "OUT 9.02,"
    "LD 9.02,"
    "AND T2,"
    "OR 9.03,"
    "!AND 9.04,"
    "OUT 9.03,"
    "LD 9.03,"
    "AND T3,"
    "OR 9.04,"
    "!AND 9.05,"
    "OUT 9.04,"
    "LD 9.04,"
    "AND T4,"
    "OR 9.05,"
    "!AND 9.06,"
    "OUT 9.05,"
    "LD 9.05,"
    "AND T5,"
    "OR 9.06,"
    "!AND 9.07,"
    "OUT 9.06,"
    "LD 9.06,"
    "AND T6,"
    "OUT 9.07," 
    "LD 9.01,"
    "TIM 1 #50,"
    "LD 9.02,"
    "TIM 2 #50,"
    "LD 9.03,"
    "TIM 3 #50,"
    "LD 9.04,"
    "TIM 4 #50,"
    "LD 9.05,"
    "TIM 5 #50,"
    "LD 9.06,"
    "TIM 6 #50,"
    "LD 9.01,"
     "LD 0.02,"
    "CNT 1 #100,"
    "ld 9.00,"
    "!out 9.00,"
    ";" 
};

#endif    //_PROGRAM_H_        


库文件的接口头文件
/*
*********************************************************************************************************
*                                     uPLC

*                   Using the Keil uVision2 compiler
*
* File : uPLC.h
*********************************************************************************************************
*/
#ifndef        _uPLC_H_
#define        _uPLC_H_

#define uPLC_IR_SIZE                  10    /* Size of inter relays */
#define uPLC_HR_SIZE                5    /* Size of Hoding relays   */
#define uPLC_SR_SIZE                10    /* Size of Special relays   */
#define uPLC_DM_SIZE                10    /* Size of memory   */
#define uPLC_TIM_SIZE                10    //maxinum number of Timer 
#define uPLC_CNT_SIZE                 5    //Maxinum number of counter
///////////////////////////////////////////////////////////////////////////

/*********************************************************************************************************
*                                          uPLC ERROR CODES
*********************************************************************************************************/

#define InsSize                        35
#define uPLC_ERR_NO                 0
#define uPLC_ERR_TIMEOUT            10
#define uPLC_ERR_COMM                11   //Communication ERR
/////////////////////////////////////////////////////////////////////////
/*********************************************************************************************************
*                                       uPLC FUNCTION PROTOTYPES
*********************************************************************************************************/
void         ExecuteLadder(char *p);
void        ReflashTIM(void);
void        uPLCInit(void);
int    *        GetIR(void);
int    *        GetSR(void);
int    *        GetHR(void);
int    *        GetDM(void);

void        CheckLadder(char *p);

#endif    //_uPLC_H_

所谓的PLC例子程序
/*
*********************************************************************************************************
*                            EXAMPLE1

*                   Using the Keil uVision2 compiler
* File : EXAMPLE1.C
*********************************************************************************************************
*/
#include "uPLC.h"
#include "EXAMPLE1.h"
#include "REG52.h" //应与所用的CPU相配
#include "Program.h"

//////////////////////////////////////////////////////////////////////////////////
#define OSC_FREQ            (12000000UL)
#define OSC_PER_INST        (12)

//Preload value for 20 ms delay
#define PERIOD        (20)    //100 msec    
#define PRELOAD020    (65536 - (unsigned int)(OSC_FREQ * PERIOD / (OSC_PER_INST * 1000)))
#define PRELOAD020H    (PRELOAD020 / 256)
#define PRELOAD020L    (PRELOAD020 % 256)

#define INTR_TIMER_0        1

unsigned int xdata counter;

///////////////////////////////////////////////////////////////////////////////
void Timer0ISR(void) interrupt INTR_TIMER_0
{
    //Reload timer0 value 
    TL0    = PRELOAD020L;
    TH0 = PRELOAD020H;
    if(counter%5==0) ReflashTIM();
    counter++;
}
///////////////////////////////////////////////////////////////////////////////
void main (void)
{
#if CODE_DEBUGGING
    SCON  = 0x50;                /* SCON: mode 1, 8-bit UART, enable rcvr      */
    TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
    TH1   = 221;                /* TH1:  reload value for 1200 baud @ 16MHz   */
    TR1   = 1;                  /* TR1:  timer 1 run                          */
    TI    = 1;                  /* TI:   set TI to send first char of UART    */
#endif
    Init();

#if CODE_DEBUGGING
    CheckLadder(Program);
#endif
    while (1)
      {
        ExecuteLadder(Program);
        MappingIO();
      }
}
////////////////////////////////////////////////////////////////////////////////////////////////////
void Init(void)
{
    P0=P1=P2=P3=0xff;

    TMOD &= 0xf0;    // clear all T0 bits
    TMOD |= 0x01;    // set T0 as 16-bit timer
    
    //Set timer0 value as (65536 - 20 * 1000) equivalent to 20 ms
    TL0    = PRELOAD020L;
    TH0 = PRELOAD020H;

    ET0 = 1;    // enable timer 0 interrupt
    TR0 = 1;    // start timer 0
    EA = 1;        // enable interrupt
//    AUXR=0;        //选择片内XRAM
    uPLCInit();
    counter=0;
}
////////////////////////////////////////////////////////////////////////////////
void MappingIO(void)
{
    unsigned char In;
    unsigned int xdata mt;
    int *pIR;
    pIR=GetIR();
    mt=0;
    In=~P3;
    mt|=In;
    *pIR=mt;
    mt=*(pIR+9);
    P1=~mt; 
}
//////////////////////////////////////////////////////////////////////////////////

例子的头文件
/*
*********************************************************************************************************
*                                     EXAMPLE1.h

*                   Using the Keil uVision2 compiler
*
* File : EXAMPLE1.h
*********************************************************************************************************
*/
#ifndef        _EXAMPLE1_H_
#define        _EXAMPLE1_H_
////////////////////////////////////////////////////////////////////////////////
#define CODE_DEBUGGING                0    //1->debugging,0->release

//////////////////////////////////////////////////////////////////////////////////
    void        Init(void);
    void        MappingIO(void);

#endif    //_EXAMPLE1_H_

东方剑

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:223
  • 注册:2004年2月04日
发表于:2005-12-23 16:05:00
14楼
一动真格的就蔫了,不要不回啊?我还等着你的原代码呢!拿不出货了吧!不要欺骗网友哦!你不是要一天一贴的发吗?
  你说不是谈合作,要不要我把你们公司有分量的人物的邀请邮件公布出来,可不止一封啊。简历我是给了你们一位副总,因为你们老总说,要合作得看我简历,我说没问题。后来,我觉得什幺都没谈就要迫不及待地要看原代码,合作的事我也就不再谈了。

上面回帖中的C带码是我在工控网发的,目的只是想告诉搞工控的朋友,PLC并不神秘,这是完整的演示程序,不需要编辑平台(当时还没有)也能看到结果,而不像有些人,提供一些方框图,云里雾里的胡侃一番,让人找不到北。
真正的PLC当然要进行各种优化,而且需要编辑平台的支持才能发挥性能。遗憾的是你没有分清演示程序和真正的PLC程序,你贴出的是我的演示程序,这个程序在我的网站上还一直保留着。

wfs

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2005年6月13日
发表于:2005-12-23 16:07:00
15楼
To东方剑:作为在海维深公司(以前的德维森)与您见面并会谈的当事人,我当时在场,现在有必要跟您说两句:1.当时确实您是希望到我们公司来工作,这一点不可否认,有您的EMail和简历为证(当时您还在 SUMITECH PTE LTD(新加坡)公司做工程师)。2.既然是技术探讨,您没必要也没权利去诽谤一个公司及其产品如何如何,这一点我想应该是一个人的气度问题,并且对一个公司的说法前后不一更是一个人的品质问题,可参见当时您的Email如下,这只是为了证明我以上的。3.既然都到这个论坛里来,就是为国产PLC来做贡献的,可以多谈技术,什么都可以谈,无论您的技术先进与否,千万不要搞个人攻击,否则,大家都不会欢迎。
您的Email如下:
×××先生:你好!
    很抱歉!没有把资料寄给你,现再寄一份,请你评估一下。上次在贵公司受到你们的接待很是感激,也能感受到贵公司对发展自主知识产权的PLC的努力和期望。我自86年接触PLC,在设计和应用方面有点经验,也作了一些研究,很希望的我的经验和研究成果能为发展我国自主知识产权的PLC有一点点贡献。
    贵公司是第一家拥有自主知识产权的PLC的公司,并已作出了一定的成绩,我非常愿意加入的到贵公司的行列中,技术合作可以(条件由贵公司决定,我的条件是很低的,只要适当的报酬即可),也可以作为高级研发工程师为贵公司研发PLC,也许对贵公司有点帮助。

不知贵公司的意见如何? 望能尽快来函告知。

谢谢!
×××

东方剑

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 73回
  • 年度积分:0
  • 历史总积分:223
  • 注册:2004年2月04日
发表于:2005-12-23 21:11:00
16楼
wfs先生:
  您好!
您误会了,我无意也没必要诽谤贵公司,在此我也有必要向您说明一下。关于“有人合作的事还没谈就要看原代码”是指的王晟磊当时向我提出的要求,并不是针对貴公司和其它人的,更不存在对公司的说法前后不一的问题。至于贵公司邀请合作共同开发PLC事宜也是不可否认的事实,也十分正常,现在我还保存有当时的邮件,这并不是什么坏事,能为我们国产的PLC尽一份力这是我们共同的愿望。当时我在国外工作,我强烈的感觉到我们国家的PLC技术远远落后于国外同行水平,我迫切希望把我多年研究的PLC技术转化成产品,如与贵公司合作就能把这个过程缩短许多。这是我当时的想法。
  在论坛上的本意当然是要探讨技术的,可是我不知王晟磊先生为什么会以人身攻击为乐,说什么要揭一年前的“老底”,而所谓的老底就是一年前的演示程序,我只是遗憾他分不清演示程序和真正的PLC程序的区别。

steelen

  • 精华:1帖
  • 求助:2帖
  • 帖子:164帖 | 1497回
  • 年度积分:4
  • 历史总积分:5171
  • 注册:2002年3月15日
发表于:2005-12-24 12:52:00
17楼
不要互相攻击了,我们的敌人是外国,不是内部。

如果哪个兄弟的PLC代码确实好用,我们愿意购买

王晟磊

  • 精华:12帖
  • 求助:0帖
  • 帖子:70帖 | 687回
  • 年度积分:0
  • 历史总积分:1173
  • 注册:2004年2月11日
发表于:2005-12-25 15:53:00
18楼
东方先生最好把上面的所有的贴子再看一遍,然后再说是谁在人身攻击!STEELEN说得好,技术好坏是做出来的,时间可以证明一切。这个贴我希望到此打住。

支持国货

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 100回
  • 年度积分:0
  • 历史总积分:160
  • 注册:2005年11月16日
发表于:2005-12-25 17:43:00
19楼
呵呵,有道理,东西是做出来的,时间可以检验。现在国人玩概念,做炒作的太多了。个人而言,借此混混可以,但是一个行业,和一个国家要是这么做,那么太危险了!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-12-25 17:53:00
20楼
路过,讲几句
1。看到国内有越来越多的公司设计生产PLC, 是中国的一大幸事。
2。古人讲:有则改之无则加勉,做大事是需要气量的,technology只是成功的一小部分。做成功了,可以说明一切。
让我们共勉。


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 下一页 尾页