Beremiz介绍
-
Beremiz是一个以IEC 61131-3为标准,用于编写软件PLC(Programmable Logic Controller,可编程逻辑控制器)程序的开发环境。它提供了一个直观的图形化编程界面,支持多种编程语言,包括指令列表(Instruction List,IL)、结构化文本(Structured Text,ST)、梯形图(Ladder Diagram,LD)、功能块图(Function Block Diagram,FBD)、顺序功能图(Sequential Function Chart,SFC)等五种编程语言。Beremiz还提供了灵活的数据类型支持和强大的调试和模拟功能,以便开发人员可以在不实际连接硬件的情况下进行测试和调试。Beremiz的目标是成为一个易于使用、功能强大且可扩展的软PLC编程工具。
-
Beremiz开发环境可以在Windows和Linux操作系统上运行。它是用Python、C、C++和其他跨平台语言编写的。因此,要运行和运行Beremiz,必须构建Python解释器和一组已安装的包(库)。
-
Beremiz开发环境允许您在配置模式和应用程序执行模式下工作。在配置模式下,创建应用程序,编写其主要软件模块的算法和逻辑,并将其与外部在线解决模块(对象通信设备)相关联。在执行模式下,应用程序被传输到目标设备后,配置自动运行,而无需调试。
-
Beremiz支持ModBus,EtherCAT,CANopen,BACnet,OPC UA 等多种协议。
-
Beremiz包括客户端和服务端:
– 客户端:
IEC 61131-3语言编辑器,用于编辑PLC程序;
IEC 61131-3编译器,用于把PLC程序转化为C语言;
GCC编译器,用于目标平台(Win,Linux,Xenomai);
调试器,用于监控变量的时序图;
相应的警告和错误以对话框中的消息或调试控制台中的文本信息的形式显示。
– 服务端:
非实时层,用于和客户端通讯和管理软PLC程序;
实时层,用于运行软PLC程序。
远程调用
远程调用:在分布式系统中,有两台服务器A,B 。 一个应用部署在A服务器上,想要调用B服务器上应用提供的函数和方法。由于不在一个内存空间里,不能直接调用。需要网络来传递调用的语义和传达调用的数据。
- 1.首先,在客户端和服务器之间建立TCP连接。
- 2.当客户端上的应用发起远程过程调用时,方法和方法的参数需要通过底层的网络协议如TCP传递到服务器,由于网络协议是基于二进制的。内存中的参数的值要序列化成二进制的形式,通过寻址和传输将序列化的二进制发送给服务器。
- 3.服务器接收到请求后,需要对参数进行反序列化(序列化的逆操作),恢复为内存中的表达方式,然后找到对应的方法(寻址的一部分)进行本地调用。然后得到返回值。
- 4.返回值还要发送回客户端上的应用,也要经过序列化的方式发送,客户端接到后,再反序列化,恢复为内存中的表达方式,交给客户端上的应用。