logix的学习和一些想法

目前我要做的一个项目是关于怎样将BioSpi语言转化成可在logix下可编绎运行的程序。BioSpi是一个并发的用于描述生物反应的语言,目前我对它的了解不深,正在搜集资料,估计资料收全后会做一些相关介绍。这里讲一讲这几天对logix的学习。

Logix是一个用FCP(Flat Concurrent Prolog)语言写成的并发系统(也可以说一个编程环境),在它上面可以并发的运行程序。CP(Concurrent Prolog)是一种为程序的并发执行而设计的逻辑编程语言。它是面向进程(process oriented)的语言,以数据流的同步和命令执行的不确定行作为它的基本控制技术。FCPCP的一个子集,它拥有绝大多数CP具有的功能。做为了一个编程环境,logix拥有自己的编绎器,编绎器将FCP编写的程序解释成抽象的FCP机器指令,并由一个由C编写的仿真器(emulator)执行它。

Logix由三种类型的对象构成,它们分别的:ComputationsModulesServicesComputationsLogix中程序执行、控制、调试的基本单位(可以理解为一个正在运行的进程,事实上一个Computation由很多Processes构成)ModulesLogix中程序编绎的基本单位(可以理解为一段程序代码);而Services提供了调用Logix系统中底层功能的接口(可以理解为系统调用)

那么,在Logix下编写一个程序并让它执行的过程如下:

(1)       编写调试程序的过程跟所有高级语言类似(编写,运行,修改,直到运行结果正确)。

(2)       这里我们说说编写的程序的组成以及它是怎样运行的,以一个简单的反转串列的例子来说明问题。(rev.cp)

                reverse([X|Xs],Ys):-

                reverse(Xs,Zs),append(Zs,[X],Ys).

reverse([],Ys):-true:Ys=[].

append([X|Xs],Ys,Zs):-true:Zs=[X|Zs'],

append(Xs,Ys,Zs').

append([],Ys,Zs):-true:Zs=Ys.

以上这段程序我们可以看做是一个Modules,在里面包含了两个Procedures,分别的reverseappend,它们分别都用到了递归调用。如果我们想编绎运行它们,可以在”@”提示符下输入下列命令:

compile(rev) //可省

rev#append([1,2,3],[4,5],L1)

系统开始自动运行

<1>started

<1>terminated

接着我们输出我们想要的值

L1^

L1=[1,2,3,4,5]

这里我们可以看出,一个Modules可以由很多个Procedures组成。就象C程序可以由很多函数组成一样。一个Module可以调用很多的Services。最后面我们声的那句reverse([],Ys):-true:Ys=[].事实上代表了一个Process,所以一个Computation可以由很多Processes组成,并同时跨越很多的Services。一言一毕之,一个Computation(计算)由很多的Processes并发执行,ProcessModule里定义并通过解释器解释执行,Module里可以同时调用多个的Services

最后,Logix还提供了很多的接口(类似WindowsAPI),这些是编程时可以查手册的,这里不做详细介绍。

一些想法:Logix在实现程序的并发运行时做得很不错,如果有它的源代码我相信会学到更多。 

一些想法:Logix在实现程序的并发运行时做得很不错,如果有它的源代码我相信会学到更多。 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Logix5000和Micro800都是罗克韦尔自动化(Rockwell Automation)公司的PLC(可编程逻辑控制器)产品系列,用于工业自动化控制系统。 Logix5000是一种高级PLC系列,通常用于大型工业生产场所。它能够处理大量的输入和输出信号,并支持复杂的控制算法和编程功能。Logix5000系列PLC具有强大的性能和高度可靠性,适用于大规模和高要求的工业自动化应用。与其他PLC产品相比,Logix5000提供了更多的功能和灵活性,能够满足各种复杂控制需求。 Micro800是一种小型可编程逻辑控制器,它的体积较小、成本较低,适用于小型或中小型工业设备的控制。Micro800系列PLC具有较少的输入输出接口,但同样具备可靠的性能。由于体积小巧、易于安装和操作,Micro800被广泛应用于小型工程项目或简单的自动化任务。 CSDN是中国最大的IT技术社区,致力于提供软件开发、程序员教程、技术文章、IT资讯等服务。在CSDN上,我们可以找到关于Logix5000和Micro800通讯的相关教程和讨论。这些资源能够帮助我们了解如何在Logix5000和Micro800之间建立并实现通信,以及如何编写适当的通信协议和程序。 总结来说,Logix5000和Micro800是罗克韦尔自动化公司的PLC产品系列,用于工业自动化控制系统。Logix5000适用于大型工业项目,具有复杂的控制功能;而Micro800则适用于小型或中小型工业设备控制,具有较简单的功能。在CSDN上可以找到相关的教程和资源,帮助我们学习和实现Logix5000和Micro800之间的通信。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值