一款全新的 高级PLC编程语言 P语言 简介 点击:1581 | 回复:4



PLC文竹

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2013年11月24日
发表于:2013-11-24 01:50:59
楼主

几年前,我带研究生做了个“高级PLC编程语言【P语言】”,不知是否有意义?
现贴出看看,望指点,指教。谢谢!

摘要:本文介绍了一款国产的、自主的、全新的计算机高级语言[简P语言]。它目前的应用主要面向“PLC可编程控制器”、“机器人”、“玩具机器人”、“运动控制器”、“智能家居控制器”、“物流网终端”等过程控制领域。[简P语言]应该是一个适合于控制类的公共的、通用的、实时的、向下兼容的、(现场的)高级的平民化编程语言。这个“语言”已包含或继承了许多“C”、“C#”的隐含、抽象、封装、重载理念。
关键词:P语言;PLC编程;第六种PLC(高级)编程语言;重载,向下兼容;平民化,机器人;
****************************************************************************************************************
语言的结构、语法、特征
P语言的设计方法和方向是:向下兼容现有传统编程模式,和向上预留有发展空间:图一中可以看出,相互的关系,数据的流向;还可以看出,目前只是适用于制造业。

图一 P语言与主要PLC编程语言的关系示意图。
图二中可以看出,P语言的最下游是下位机=各种各样的控制器;可以说,P语言本身可以与硬件无关,但是应用时是由中间代码与具体硬件关联。这样就可以达到“与硬件无关”的要求。


图二 P语言的功能框图:
P语言的内核和外在的复杂性,系统级别知识面牵连甚广,微观到微电子的微指令的实时时序
逻辑(微秒、纳秒级),硬核化操作系统(参考6);宏观到人文抽象思维、图形思维逻辑;所以,[P语言]要求包含许多普通计算机语言以外的元素,这就是G语言的特殊性。
图三中可以看出,P语言的系统运行环境和相互之间的关系。

文介绍了一个全新的计算机高级G语言,实际上[G语言]是一个跨行业的系统工程,牵涉到计算机硬件、软件和工具语言,工业过程控制(如PID)理论(参考4),各个应用行业的基础知识和行业知识(机床、电器、电子、机器人、客控器、运动控制等),微电子,人文语言等多学科基础理论的研究,有待不断地学习和提高及得到同行专家、行家的指正。
下面是[G语言]的设计面貌汇总:
1] 取“basic”的平易近人;“C”的约定和严谨;“C#”的高级理念。
2] 向下兼容:梯形图、FBD、STL等;
3] 面向“非计算机专业”电器、电子类工程技术人员;
4] 面向青少年(机器人&玩具机器人);面向智能家居的客控系统(参考7)。
5] 保留数学、算法语言特征&运动、控制特征(参考5);
5] 不用或隐含专业的“类型”、“声明”与“定义”等名词与概念;
6] 编程基础理论严谨,便于使用者今后发展,深造。(不会引入歧途)
7] 包容“中文”编程;
8] 便于从文本格式升级到图形格式的(手画)流程图式“图#G语言”;
9] 便于创建编辑或调试环境;
10] 便于今后语言扩展;
11] 便于制定标准;
12] 对于计算机专业的人员同样易于接受。

P语言编译器描述
根据“与硬件无关”、“跨平台”的原则,要设计一个“高效的”、“尽量少占空间”、“运行极快”的[中间代码]集。这个[中间代码]要达到上述要求,这里有诸多设计工作和测试工作需考虑。
如:PLC语言中的“=”号的赋值方向是“右向”赋值;I2.2=Q1.2;
这句话表示,将“I2.2”布尔变量的状态值(‘0’或者‘1’)赋给另一个布尔变量“Q1.2”。
即: I2.2=‘0’时,就将Q1.2清‘0’;即为“假”=“false”。
I2.2=‘1’时,就将Q1.2置‘1’;即为“真”=“true”。
但是,一般的“数学语言(表达式)”中,“=”号的赋值方向是“左向”赋值;
即: number =100;就是将100的数值赋给 number变量,居如此类…,等等。
G语言的编译器采用自己定义的中间代码体系,已做到“DEMO”版本V0.45了。

若大家觉得有意义。我再整理出来。

佘承业 2013.11. 24

 




江苏成振

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 438回
  • 年度积分:2
  • 历史总积分:719
  • 注册:2006年6月06日
发表于:2013-11-24 07:08:10
1楼

PLC没有赋值语句.人家是图形编程序.

人家就已经很简单,而且工作很好了.

我看不出会比PLC更好的了.

 

PLC文竹

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2013年11月24日
发表于:2013-11-24 11:13:02
2楼

谢谢指点。回复一下:

1<此处内容被屏蔽>  若能用类似<此处内容被屏蔽>数学语言<此处内容被屏蔽>  编程PLC,是否可以接受?

2<此处内容被屏蔽>  <此处内容被屏蔽>on  Y002,Q003;<此处内容被屏蔽>     (源码)    这个句子是否容易理解?

3<此处内容被屏蔽>   下面的 程序是否 容易读懂?

/********** 代码段 ********************************************************/

{     

      i = PI;

      length=20;                            // 赋值长=20

      宽=30;                                  // 赋值宽=30

      hight=10;

      Fok=0;                                 // 清该标志位(若是开机时,可以不清,系统自己清零;)

      Call  @Do求和面积体积 (length,wide,hight,Fok);          //求和、面积、体积的子程

                                                                                                序, main 调用。

      stop;                                                                            // 打住了

}

 /*********************************************************************************************/

PLC文竹

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2013年11月24日
发表于:2013-11-24 11:17:40
3楼

谢谢指点。回复一下:

1)   若能用类似   "数学语言"  编程PLC,是否可以接受?

2)    on  Y002,Q003;        (源码)    这个句子是否容易理解?

3)    下面的 程序是否 容易读懂?

/********** 代码段 ********************************************************/

{     

      i = PI;

      length=20;                            // 赋值长=20

      宽=30;                                  // 赋值宽=30

      hight=10;

      Fok=0;                                 // 清该标志位(若是开机时,可以不清,系统自己清零;)

      Call  @Do求和面积体积 (length,wide,hight,Fok);          //求和、面积、体积的子程

                                                                                                序, main 调用。

      stop;                                                                            // 打住了

}

 /*********************************************************************************************/

  前一次 发的回复,“<此处内容被屏蔽>”  不能 显示!

 

wjlovelj

  • 精华:0帖
  • 求助:3帖
  • 帖子:15帖 | 169回
  • 年度积分:6
  • 历史总积分:2783
  • 注册:2011年7月11日
发表于:2014-07-03 16:58:33
4楼

是个什么语言,有附件么????我先回复看看


热门招聘
相关主题

官方公众号

智造工程师