CN113625652B - 一种数控内嵌plc中间文件处理及译码执行方法 - Google Patents
一种数控内嵌plc中间文件处理及译码执行方法 Download PDFInfo
- Publication number
- CN113625652B CN113625652B CN202110867139.6A CN202110867139A CN113625652B CN 113625652 B CN113625652 B CN 113625652B CN 202110867139 A CN202110867139 A CN 202110867139A CN 113625652 B CN113625652 B CN 113625652B
- Authority
- CN
- China
- Prior art keywords
- bincode
- real
- plc
- data
- intermediate file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1108—Relay module
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
本发明公开了一种数控内嵌PLC中间文件处理及译码执行方法,该方法首先定义中间文件的数据结构BinCode,每个BinCode占两个long int空间,而每个指令可以由一个或者几个BinCode数据结构表示,最后编译为二进制中间文件plc.bin,保存起来供后面程序处理。本发明由LINUX非实时环境中通过FIFO设备发送二进制中间文件、通过实时共享内存共享实时的输入输出接口状态,将实时的输入输出状态信息分享给用户层,再结合实时性测试等内容,可以构建一个内嵌PLC完整且可实现的译码执行器。
Description
技术领域
本发明涉及内嵌在数控系统或者工业机器人控制系统中的PLC的技术领域,具体涉及一种基于指令表语言扩展的内嵌PLC源程序的编码方法、中间文件的数据结构及其编译执行算法的设计。
背景技术
PLC,也就是可编程逻辑控制器,是种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。在PLC系统中,从上位机将由梯形图转化得到的指令表形式表示的控制程序下载到PLC主控制器中,通过对指令表的编译(见图1)或者解释执行便可以实现PLC程序的控制逻辑,经相应的IO口模块驱动现场设备执行控制任务。
例如,中国专利(CN101587445A)公开了在PLC中梯形图转化为CPU指令并由CPU直接执行的示例。论文《基于RTLinux的开放式软件PLC的研究》简单介绍了一种软件PLC的开放式软硬件体系设计。论文《基于RT-Linux的嵌入式PLC设计及实现》、《基于RTLinux的软件PLC的研究与开发》和《基于RTLinux的软件PLC研究与实现》分别简单介绍了一种PLC嵌入式软硬件体系设计的方法。论文《基于RTLinux的软PLC系统设计与实现》公开了一种基于RTLINUX的PLC系统并测试了指令表执行实时性。
前面专利是针对通用PLC的几种编程语言转化为C语言,由C语言编译器编译成CPU指令,这种方案存在更新PLC程序甚至于哪怕修改一个节点,都需要重新编译整个系统的问题。后面的论文中无论是针对通用PLC还是内嵌PLC,大多将软硬件体系或者实时性测试方面的分析突出了自己的特点,但是针对如何从一个与平台无关的目标文件译码、执行及信息反馈这方面介绍很少,甚至没有,这样对于创建一个内嵌PLC在RTLINUX环境下的完整的译码执行器造成了比较大的障碍。
发明内容
基于此,为了解决上述问题,本发明的首要目的在于提供一种数控内嵌PLC中间文件处理及译码执行方法,该方法由LINUX非实时环境中通过FIFO设备(/dev/rtf1)发送二进制中间文件、通过实时共享内存(mbuff_attach(SHMPLC,))共享实时的输入输出接口状态,在RTLINUX实时环境中打开FIFO(rtf_get(1))读取、处理、执行、控制输入输出以及通过创建实时共享内存(mbuff_alloc(SHMPLC))将实时的输入输出状态信息分享给用户层,可以构建一个内嵌PLC完整且可实现的译码执行器。
为实现上述目的,本发明提供如下技术方案:
一种数控内嵌PLC中间文件处理及译码执行方法,该方法首先定义中间文件的数据结构BinCode,每个BinCode占两个long int空间,而每个指令可以由一个或者几个BinCode数据结构表示,最后编译为二进制中间文件plc.bin,保存起来供后面程序处理。;
其中,数据结构BinCode为:
typedef struct{
char cmd;
char arg_t;
union{
unsigned int num;
struct{
unsigned char reg;
unsigned short no;
unsigned char bit;
}reg_no_bit;
}arg;
}BinCode;
其中,整个中间文件由含n个BinCode结构体的数组组成,定义BinCode结构体中的各个成员的具体含义以及取值范围;cmd表示指令代码,分为基本指令和功能指令;arg_t表示参数类型,用来指示共用体中的数据意义。0:无参数,1:寄存器-组号-位号,2:寄存器-组号,3:常数,4:状态字;arg根据arg_t的意义来确定本共用体的信息;其中结构体reg_no_bit表示寄存器-组号-位号;num表示常数或状态字。
进一步,将生成的plc.bin的二进制中间文件通过/dev/rtf1这个实时FIFO 1设备名写到RTLINUX实时内核空间,在RTLINUX实时环境中创建一个实时FIFO 1,并打开FIFO 1(rtf_get(1))读取到多组BinCode,
在RTLINUX内核实时处理BinCode结构,并根据cmd的编码,调用相应的函数指针来执行相应的处理;
(*cmd_fun[(unsigned char)bin_pointer->cmd])();
将输出继电器Y,G等状态存到PLC运行的内部数据结构struct PMC中:
typedef struct PMC{
char x[PMC_X_SIZE];
char y[PMC_Y_SIZE];
……
}PMC。
进一步,在RTLINUX内核定时处理输入输出刷新,
data=inb(reg_addr);
outb(data,reg_addr);
调用IO输入输出指令,刷新输入状态和输出控制。
更进一步,在RTLINUX内核空间用mbuff_alloc开辟一块名字为SHMPMC的MBUFF,首地址赋值给kernelpmc,并将所有数据清零;在LINUX用户空间中用mbuff_attach连接名为SHMPMC的MBUFF,首地址赋值给userpmc。这样就可以将RTLINUX内核处理过程中的PLC各个继电器等信息共享到LINUX非实时空间。
与现有技术相比,本发明的有益效果是:
本发明基于一定数据结构的中间文件,由LINUX非实时环境中通过FIFO设备(/dev/rtf1)发送二进制中间文件、通过实时共享内存(mbuff_attach(SHMPLC,))共享实时的输入输出接口状态,在RTLINUX实时环境中打开FIFO(rtf_get(1))读取、处理、执行、控制输入输出以及通过创建实时共享内存(mbuff_alloc(SHMPLC))将实时的输入输出状态信息分享给用户层,再结合实时性测试等内容,可以构建一个内嵌PLC完整且可实现的译码执行器。
并且还可以通过上述数据结构以及定义扩展更多的继电器、寄存器,以及更多更实用的功能指令,使得译码执行器更加灵活,功能更加强大。
附图说明
图1为本发明内嵌PLC译码执行器LINUX和RTLINUX空间分布及关系图。
图2为本发明内嵌PLC BinCode译码的流程图。
图3为本发明内嵌PLC执行器的流程图。
图4是内嵌PLC的中间文件plc.bin。
图5为本发明图4对应的指令表。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所实现的数控内嵌PLC中间文件处理及译码执行方法,该方法首先定义中间文件的数据结构BinCode,每个BinCode占两个long int空间,而每个指令可以由一个或者几个BinCode数据结构表示,最后编译为二进制中间文件plc.bin,保存起来供后面程序处理。
其中,数据结构BinCode为:
typedef struct{
char cmd;
char arg_t;
union{
unsigned int num;
struct{
unsigned char reg;
unsigned short no;
unsigned char bit;
}reg_no_bit;
}arg;
}BinCode;
整个中间文件由含n个BinCode结构体的数组组成,定义BinCode结构体中的各个成员的具体含义以及取值范围,其中,cmd表示指令代码,分为基本指令和功能指令;arg_t表示参数类型,用来指示共用体中的数据意义。0:无参数,1:寄存器-组号-位号,2:寄存器-组号,3:常数,4:状态字;arg根据arg_t的意义来确定本共用体的信息。其中结构体reg_no_bit表示寄存器-组号-位号;num表示常数或状态字。
将生成的plc.bin(如图4所示,对应的指令表可以参考图5)的二进制中间文件通过/dev/rtf1这个实时FIFO 1设备名写到RTLINUX实时内核空间,在RTLINUX实时环境中创建一个实时FIFO 1(rtf_create(1)见程序(23)),并打开FIFO 1(rtf_get(1))读取到多组BinCode,如图1左侧所示。
在RTLINUX内核实时处理BinCode结构。并根据cmd的编码(见本发明人《一种数控内嵌PLC中间文件的设计与编译方法》),调用相应的函数指针来执行相应的处理,如图3所示。
(*cmd_fun[(unsigned char)bin_pointer->cmd])();
将输出继电器Y,G等状态存到PLC运行的内部数据结构struct PMC中:
typedef struct PMC{
char x[PMC_X_SIZE];
char y[PMC_Y_SIZE];
……
}PMC;
在RTLINUX内核定时处理输入输出刷新,如图2所示。
data=inb(reg_addr);
outb(data,reg_addr);
调用IO输入输出指令,刷新输入状态和输出控制。
在RTLINUX内核空间用mbuff_alloc开辟一块名字为SHMPMC的MBUFF,首地址赋值给kernelpmc,并将所有数据清零;在LINUX用户空间中用mbuff_attach连接名为SHMPMC的MBUFF,首地址赋值给userpmc。这样就可以将RTLINUX内核处理过程中的PLC各个继电器等信息共享到LINUX非实时空间,如图1右侧所示。
1.首先,编写一个具有两级结构的PLC的基本指令表,编译成为二进制中间文件plc.bin(如图4所示,对应的指令表可以参考图5),实现数控机床上的一些基本操作要求,如二进制码:
0001_0000……(1)
5802_0300……(2)
0601_0000……(3)
4702_0300……(4)
1400_0000……(5)
0000_0000……(6)
在32位二进制码(1)中00表示“LD”指令;01表示“LD”指令后面所带的参数类型为“地址.位”;“LD”指令参数后的两个字节可以为任意数,不代表具体含义。
在32位二进制码(2)中58表示大写“X”地址的ASCII码;02表示2的“位”次方,这里“位”就是1;03表示“X”的字节地址;最后的00无意义。
每个BinCode占两个long int空间,也就是说一条指令表的指令至少占用64位。所以以上64位二进制码的对应指令表为:“LD X3.1”(如图5中501所示)
中间文件中的几个有代表性的指令与PLC的指令表的对应关系见表1,表1显示了中间文件(二进制)与基本指令表(ASCII)对应关系。
表1
2.将生成的plc.bin(如图4所示,对应的指令表可以参考图5)的二进制中间文件通过/dev/rtf1这个实时FIFO设备名写到RTLINUX实时内核空间,在RTLINUX实时环境中打开FIFO 1(rtf_get(1))读取到多组BinCode,如图1左侧所示。
LINUX非实时用户空间处理:
if((fifo=open(“dev/rtf1”,O_WRONLY))<0){……(21)
printf("Open fifo%s for plc failed.\n",rtf);
return-1;
}
write(fifo,pointerfifo,sizeof(struct BinCode));……(22)
RTLINUX实时内核空间处理:
if((res=rtf_create(1,81960))<0){……(23)
rtl_printf("Failed create FIFO_PMCC.\n");
}
if((res=rtf_get(1,bin_pointer,sizeof(struct BinCode)))<0){……(24)
rtl_printf("Error read BinCode of plc.bin.");
return-1;
}
程序(21)表示在LINUX用户空间以写入模式打开实时FIFO 1,并通过该FIFO写BinCode到RTLINUX内核空间(见程序(22)),直到文件plc.bin读完。在RTLINUX实时环境中创建一个实时FIFO 1(见程序(23)),并打开FIFO 1(rtf_get(1))(见程序(24))读取到多组BinCode。如果plc.bin被更新,也会通过FIFO 1更新到RTLINUX内核空间。
3.将RTLINUX内核处理过程中的PLC各个继电器等信息共享到LINUX非实时空间,如图1右侧所示。
RTLINUX实时内核空间处理:
shm=(volatile char*)mbuff_alloc(SHMPMC,sizeof(struct PMC));……(31)
if(shm==NULL){
rtl_printf("Allocate mbuff_cnc_pmc failed.\n");
}else{
kernelpmc=(struct PMC*)shm;
memset(kernelpmc,0,sizeof(struct PMC));
}
LINUX非实时用户空间处理:
userpmc=(struct PMC*)mbuff_attach(SHMPMC,sizeof(struct PMC));……(32)
程序(31)表示在RTLINUX内核空间开辟一块名字为SHMPMC的MBUFF,首地址赋值给kernelpmc,并将所有数据清零;程序(32)中连接名为SHMPMC的MBUFF,首地址赋值给userpmc。这样实时和非实时空间就可以用名为SHMPMC的MBUFF共享数据了。共享数据结构可以这样定义:
typedef struct PMC{
char x[PMC_X_SIZE];
char y[PMC_Y_SIZE];
char r[PMC_R_SIZE];
char g[PMC_G_SIZE];
char f[PMC_F_SIZE];
int c[PMC_C_SIZE];
int t[PMC_T_SIZE];
int dc[PMC_C_SIZE];
int dt[PMC_T_SIZE];
char d[PMC_D_SIZE];
int l[PMC_L_SIZE];
int p[PMC_P_SIZE];
}PMC;
结构体中的成员分别表示所有输入继电器x,f的及时值、输出继电器y,g的及时值、中间继电器r的及时值、跳转地址l的及时值以及子程序地址的及时值等等,如表2所示。表2为内嵌PLC的继电器的定义。
表2
kernelpmc->x[i]=pmc.x[i];……(33)
kernelpmc->y[i]=pmc.y[i];
kernelpmc->r[i]=pmc.r[i];
kernelpmc->g[i]=pmc.g[i];
pmc.f[i]=kernelpmc->f[i];……(34)
内嵌PLC的x,y,r,g(见程序行(33))通过共享MBUFF刷新到LINUX用户空间,由userpmc来读取;f由于是“plc对cnc的输入继电器”,它通过共享MBUFF,由LINUX用户空间刷新到RTLINUX实时内核空间(见程序行(34))。
4.在RTLINUX内核实时处理BinCode结构。为了更方便的处理命令,使用一下函数指针数组(列出部分):
void(*cmd_fun[])(void)={……(41)
pmc_ld,
pmc_ldi,
pmc_out,
pmc_outi,
pmc_set,
pmc_rst,
pmc_and,
};
根据cmd的编码调用相应的函数指针来执行相应的处理,如图2所示,注意cmd的值我们在这里使用十进制数表示。
(*cmd_fun[(unsigned char)bin_pointer->cmd])();……(42)
如图4中401所示,如果cmd为0,表示“LD”指令,则将后面参数“X3.1”入栈;……(43)
如图4中402所示,如果cmd为1,表示“OUT”指令,则将堆栈里面的“X3.1”出栈,赋值给“OUT”指令后面的参数“G3.1”。……(44)
如图4中403所示,如果cmd为20,表示“END1”指令,则表示前面所有的指令都为第一级高速指令,在高优先级为5的毫秒级实时定时线程task_plc1中执行:
pthread_attr_init(&attr);
pthread_create(&task[0],&attr,task_plc1,(void*)0);
p.sched_priority=5;
pthread_setschedparam(task[0],SCHED_FIFO,&p);
pthread_make_periodic_np(task[0],now+NSECS_PER_SEC/2,1000000);
如图4中406所示前面的四条指令分别是“LD”、“ANI”、“LDI”和“AND”。当遇到“LD”时,入栈(参考(43));后面“ANI”,则出栈与“ANI”后面的参数取反后相与,并将结果再次入栈;当遇到“LDI”时,取反入栈(参考(43));后面“AND”,则出栈与“AND”后面的参数相与,并将本次结果入栈;
如果cmd为9,表示“ORB”指令,则将所有入栈结果全部出栈,并将相或之后结果入栈;如图4中406所示后面的一条指令是“OUT”,则参考(44)。
如图4中407所示,如果cmd为21,表示“END2”指令,则表示在“END1”和“END2”之间的所有的指令都为第二级低速指令,在低优先级为2的8毫秒级实时定时线程task_plc2中执行:
pthread_attr_init(&attr);
pthread_create(&task[2],&attr,task_plc2,(void*)0);
p.sched_priority=2;
pthread_setschedparam(task[2],SCHED_FIFO,&p);
pthread_make_periodic_np(task[2],now+NSECS_PER_SEC/2,8000000);
5.在RTLINUX内核定时处理输入输出刷新,如图3所示。
data=inb(reg_addr);……(51)
outb(data,reg_addr);……(52)
程序(51)表示调用IO输入指令,将输入继电器的状态保存到data中。
程序(52)表示调用IO输出指令,将经过内嵌PLC译码后获得的输出继电器的状态信息data控制输出继电器的动作。
总之,本发明基于一定数据结构的中间文件,由LINUX非实时环境中通过FIFO设备(/dev/rtf1)发送二进制中间文件、通过实时共享内存(mbuff_attach(SHMPLC,))共享实时的输入输出接口状态,在RTLINUX实时环境中打开FIFO(rtf_get(1))读取、处理、执行、控制输入输出以及通过创建实时共享内存(mbuff_alloc(SHMPLC))将实时的输入输出状态信息分享给用户层,再结合实时性测试等内容,可以构建一个内嵌PLC完整且可实现的译码执行器。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (2)
1.一种数控内嵌PLC中间文件处理及译码执行方法,其特征在于该方法首先定义中间文件的数据结构BinCode,每个BinCode占两个long int空间,而每个指令可以由一个或者几个BinCode数据结构表示,最后编译为二进制中间文件plc.bin,保存起来供后面程序处理;
其中,数据结构BinCode为:包括char类型变量cmd、char类型变量arg_t和一个共用体arg,该共用体arg包括unsigned int型数据num和由unsigned char 型数据reg、unsignedshort型数据no和unsigned char 型数据 bit组成的结构体reg_no_bit,
其中,整个中间文件由含n个BinCode结构体的数组组成,定义BinCode结构体中的各个成员的具体含义以及取值范围; cmd表示指令代码,分为基本指令和功能指令;arg_t表示参数类型,用来指示共用体中的数据意义;0:无参数,1:寄存器-组号-位号,2:寄存器-组号,3:常数,4:状态字;arg根据arg_t的意义来确定本共用体的信息;其中结构体reg_no_bit表示寄存器-组号-位号;num表示常数或状态字;
将生成的plc.bin的二进制中间文件通过/dev/rtf1这个实时FIFO 1设备名写到RTLINUX实时内核空间,在RTLINUX实时环境中创建一个实时FIFO 1,并打开FIFO 1(rtf_get(1))读取到多组BinCode,
在RTLINUX内核实时处理BinCode结构,并根据cmd的编码,调用相应的函数指针来执行相应的处理;
(*cmd_fun[(unsigned char) bin_pointer->cmd])();
将输出继电器Y,G状态存到PLC运行的内部数据结构struct PMC中;
在RTLINUX内核定时处理输入输出刷新,
data=inb(reg_addr);
outb(data, reg_addr);
调用IO输入输出指令,刷新输入状态和输出控制。
2.如权利要求1所述的数控内嵌PLC中间文件处理及译码执行方法,其特征在于在RTLINUX内核空间用mbuff_alloc开辟一块名字为SHMPMC的MBUFF,首地址赋值给kernelpmc,并将所有数据清零;在LINUX用户空间中用mbuff_attach连接名为SHMPMC的MBUFF,首地址赋值给userpmc。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110867139.6A CN113625652B (zh) | 2021-07-29 | 2021-07-29 | 一种数控内嵌plc中间文件处理及译码执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110867139.6A CN113625652B (zh) | 2021-07-29 | 2021-07-29 | 一种数控内嵌plc中间文件处理及译码执行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113625652A CN113625652A (zh) | 2021-11-09 |
CN113625652B true CN113625652B (zh) | 2023-04-25 |
Family
ID=78381640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110867139.6A Active CN113625652B (zh) | 2021-07-29 | 2021-07-29 | 一种数控内嵌plc中间文件处理及译码执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113625652B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002024029A (ja) * | 2000-07-11 | 2002-01-25 | Toshiba Corp | コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2005141435A (ja) * | 2003-11-05 | 2005-06-02 | Omron Corp | ツール |
CN101587445A (zh) * | 2009-06-19 | 2009-11-25 | 国网电力科学研究院 | 一种plc编译执行方法 |
CN103123598A (zh) * | 2011-11-18 | 2013-05-29 | 中国科学院沈阳计算技术研究所有限公司 | 一种编译型软plc的在线调试实现方法 |
CN103123590A (zh) * | 2011-11-18 | 2013-05-29 | 中国科学院沈阳计算技术研究所有限公司 | 指令表il程序到c语言程序的编译方法 |
CN109643100A (zh) * | 2016-08-12 | 2019-04-16 | 乌德姆泰克公司 | 用于将plc控制程序转换为结构化数据的设备和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8738159B2 (en) * | 2004-03-15 | 2014-05-27 | Siemens Industry, Inc. | System and method for accessing PLC data on demand |
-
2021
- 2021-07-29 CN CN202110867139.6A patent/CN113625652B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002024029A (ja) * | 2000-07-11 | 2002-01-25 | Toshiba Corp | コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2005141435A (ja) * | 2003-11-05 | 2005-06-02 | Omron Corp | ツール |
CN101587445A (zh) * | 2009-06-19 | 2009-11-25 | 国网电力科学研究院 | 一种plc编译执行方法 |
CN103123598A (zh) * | 2011-11-18 | 2013-05-29 | 中国科学院沈阳计算技术研究所有限公司 | 一种编译型软plc的在线调试实现方法 |
CN103123590A (zh) * | 2011-11-18 | 2013-05-29 | 中国科学院沈阳计算技术研究所有限公司 | 指令表il程序到c语言程序的编译方法 |
CN109643100A (zh) * | 2016-08-12 | 2019-04-16 | 乌德姆泰克公司 | 用于将plc控制程序转换为结构化数据的设备和方法 |
Non-Patent Citations (1)
Title |
---|
高丽 ; 李忠琪 ; 陈雪 ; .一种软PLC编译执行方法.组合机床与自动化加工技术.2011,(11),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113625652A (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10732608B2 (en) | Translation module, processing module and control system | |
Korein et al. | A configurable system for automation programming and control | |
Liu et al. | An intelligent NC program processor for CNC system of machine tool | |
EP0099263A2 (en) | Digital computer for executing multiple instruction sets in a simultaneous-interleaved fashion | |
CN113625652B (zh) | 一种数控内嵌plc中间文件处理及译码执行方法 | |
Chang et al. | Motion control firmware for high-speed robotic systems | |
Boucher et al. | Design of a factory floor sequence controller from a high level system specification | |
Kim et al. | Implementation of PLC controller connected Gazebo-ROS to support IEC 61131-3 | |
Mazur et al. | PLC implementation in the form of a System-on-a-Chip | |
Chmiel et al. | Implementation of a two-processor cpu for a programmable logic controller designed on FPGA chip | |
CN108829440B (zh) | 一种将逻辑组态数组转为逻辑执行命令的方法和系统 | |
CN113625661B (zh) | 一种数控内嵌plc中间文件转化指令表的设计方法 | |
Salcic et al. | A heterogeneous multi-core SoC for mixed criticality industrial automation systems | |
US20050060137A1 (en) | Method and apparatus to emulate an execution environment | |
Bychkov et al. | Microcontroller with ARM kernel and real time operating system | |
Hasan | A conceptual framework of common variables in CNC machines programming for Fanuc custom macros | |
CN111562914B (zh) | Ai智慧可视化控制语言集成系统 | |
Braid et al. | Geometric modelling in ALGOL 68 | |
CN117492716A (zh) | 一种基于OpenPLC的龙芯2K1000平台的实现方法 | |
Hasan | A Practical Approach to the use of Local Variables in CNC Machines Programming for Fanuc Custom Macros | |
Korn | A simulation-model compiler for all seasons | |
Vajda et al. | High-Level Object-Oriented Program Language for Mobile Microrobot Control | |
JPH03135630A (ja) | 命令スケジューリング方式 | |
Foit | The Holonic Model of Tasks Performed by Industrial Robots in Terms of the MARKUP Language | |
Fengler et al. | Petri net based program design and implementation for controller systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |