草案2NPLY02329自动化仓库PLC数据接口标准.docx
- 文档编号:15681910
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:22
- 大小:45.94KB
草案2NPLY02329自动化仓库PLC数据接口标准.docx
《草案2NPLY02329自动化仓库PLC数据接口标准.docx》由会员分享,可在线阅读,更多相关《草案2NPLY02329自动化仓库PLC数据接口标准.docx(22页珍藏版)》请在冰点文库上搜索。
草案2NPLY02329自动化仓库PLC数据接口标准
2017-03-10实施
2017-03-10发布
自动化仓库PLC数据接口标准
料框规范
ThedatainterfacestandardofPLCin
automatedstorageandretrievalsystem
Thestandardofstackingbasket
(草案)
NPLY-201602329
福建省南平铝业股份有限公司企业标准
1目次
2前言
物流密度日渐增长,而土地资源稀缺,自动化仓库系统发展迅猛。
全世界1982年仅有自动化仓储4千座,发展到目前,已超过19.2千座,其中日、美、西欧占71.3%。
我国超过200座,然而各种仓库PLC指令的数据表达不一,配套的数据库格式不一,导致PLC系统与常规调度优化软件无法通讯,极大阻碍了企业自动化的进展。
为此,有必要制定自动化仓库PLC数据接口标准,并逐步建立自动化仓库的信息化系列标准。
本标准按照GB/T1.3-2010给出的规则起草。
本标准由中华人民共和国工业和信息产业部归口。
本标准负责起草单位:
福建省南平铝业有限公司。
本标准主要起草人:
张永晖,林光磊,戴建民,廖世昌,林元泉。
自动化仓库PLC数据接口标准
1范围
本规范规定自动化立体仓库可编程控制器(PLC)数据接口标准。
同时包括相关数据接口的术语、定义、缩略语、要求。
符合该PLC数据接口的指令均由ERP系统(集成入出库调度)或独立的手动入出库调度系统写入数据库的Tab_cmd表,而自动化仓库系统由读取数据库Tab_cmd表并由PLC执行,并将其执行结果回写入数据库Tab_exeresult以及改写Tab_location表。
相关数据控制结构说明见附录A.
本规范适用于基于数据库为中心、以西门子可编程控制器(PLC)为底层技术的自动化仓库的数据分享与交流。
规范性引用文件
下列文件对于本文件的应用是必不可少的。
凡是注日期的引用文件,仅注日期的版本适用于本文件。
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
JB10822-2008-T自动化立体仓库设计通则
/Txxx—×××0堆垛式型材立体仓库设计标准
/Txxx—×××1自动化立体仓库与ERP系统的数据接口标准
2调用说明
指令写入Tab_cmd表,由PLC执行,执行结果回写入Tab_exeresult以及改写Tab_location表。
相关表结构如下:
2.1指令表Tab_incmd
表1指令表Tab_cmd
编号
字段
数据类型
描述
1
No
NUMBER(16)
指令编号
2
Cmd
NUMBER(80)
至底层PLC的指令列表
2.2指令执行结果表Tab_exeresult
表1指令执行结果表Tab_exeresult
编号
字段
数据类型
描述
1
No
NUMBER(16)
返回结果编号
2
CMDNo
NUMBER(16)
指令编号
3
Exe_result
NUMBER(80)
PLC返回的结果列表
2.3位置表Tab_Location
表1位置表Tab_Location
编号
字段
数据类型
描述
1
FLOOR_NUM
NUMBER
(2)
楼层
2
SPAN_NUM
NUMBER
(2)
跨区
3
FRONT_NUM
NUMBER
(2)
排数
4
STACK_NUM
NUMBER(3)
堆数
5
LEVEL_NUM
NUMBER
(2)
层数
6
BASKET_NUM
NUMBER(6)
料框号
7
ENABLED
VARCHAR2
(2)
是否可用
8
EMPTY
VARCHAR2(5)
是否为空
3自动化仓库PLC指令
3.1置料指令SET_BASKET_DESTINATION
置料指令SET_BASKET_DESTINATION:
根据提供的料框号、捡料区、料框状态,把指定料框自动从指定捡料区放置到仓库中。
3.1.1函数定义
procedureSET_BASKET_DESTINATION
(
p_basket_numinnumber
p_picking_stationvarchar2
p_emptyinvarchar2
p_resultoutnumber
)
3.1.2参数说明
p_basket_num:
料框号;
p_picking_station:
捡料区;
p_empty:
料框状态,假如为空则为“Y”,否则为“N”
p_result:
返回结果,如果存储过程执行成功返回“Y”,否则为“N”
3.1.3示例
如:
把框号为‘1696’的料框从捡料区号‘1’中取料并放置到仓库中的指令:
SET_BASKET‘1696’,‘1’,‘False’
3.2取料指令TAKE_OUT_BASKET
取出料框指令TAKE_OUT_BASKET:
根据提供的料框号、捡料区,把指定料框自动从仓库放置到指定捡料区中。
3.2.1函数定义
procedureTAKE_OUT_BASKET
(
p_basket_numinnumber
p_picking_stationvarchar2
p_resultoutnumber
)
3.2.2参数说明
p_basket_num:
料框号;
p_picking_station:
捡料区;
p_result:
返回结果,如果存储过程执行成功返回“Y”,否则为“N”
lock_stack(1,1,2,'Y',?
?
?
);
3.2.3示例
把框号为‘1696’的料框取出,并放置到捡料区号‘1’的指令:
TAKE_OUT_BASKET‘1696’,‘1’
3.3锁堆指令lock_stack
锁堆指令lock_stack:
将所指定的堆进行解锁加锁。
3.3.1函数定义
CREATEORREPLACEprocedurelock_stack(
p_floornumber,
p_spanvarchar,
p_stacknumeric,
p_statusvarchar,
erroutvarchar,
reasonoutvarchar,
errnumoutvarchar)
3.3.2参数说明
p_floor_number:
楼层号;
p_span:
跨号;
p_stack:
堆号;
p_status:
堆状态号,“Y”加锁,“N”解锁
err:
返回加锁解锁失败返回错误信息
reason:
返回错误原因
errnum:
返回错误结果
3.3.3示例
把位置为2层3跨88堆进行加锁:
errVARCHAR2(50);
reasonVARCHAR2(250);
errnumNUMBER(4);
lock_stack(2,3,88,’Y’,:
err,:
reason,:
errnum);
3.4设置篮子的目的地指令set_basket_destination
设置篮子的目的地set_basket_destination:
将篮子置于某个地方。
3.4.1函数定义
procedureset_basket_destination
(
p_sequenceinnumber
p_basket_numinnumber
p_dest_floorinnumber
p_dest_spaninnumber
p_dest_frontinnumber
p_dest_stackinnumber
p_emptyinvarchar2
p_resultoutvarchar2
)
3.4.2参数说明
p_sequence:
顺序号;
p_basket_numinnumber:
料框号
p_dest_floorinnumber:
料框目的地的楼层
p_dest_spaninnumber:
料框目的地的跨
p_dest_frontinnumber:
料框目的地的front
p_dest_stackinnumber:
料框目的地的堆
p_emptyinvarchar2:
是否置为空蓝
p_resultoutvarchar2:
返回结果
3.4.3示例
把料框为1234的放置楼层为3,跨为3,front为2,堆为30不为空的料框地地方:
p_resultvarchar2;
set_basket_destination(123456,1234,3,3,2,30,'N',:
p_result)
3.5设置篮子的目的地指令set_basket_destination
设置篮子的目的地set_basket_destination:
将篮子置于某个地方。
3.5.1函数定义
procedureset_basket_destination
(
p_sequenceinnumber
p_basket_numinnumber
p_dest_floorinnumber
p_dest_spaninnumber
p_dest_frontinnumber
p_dest_stackinnumber
p_emptyinvarchar2
p_resultoutvarchar2
)
3.5.2参数说明
p_sequence:
顺序号;
p_basket_numinnumber:
料框号
p_dest_floorinnumber:
料框目的地的楼层
p_dest_spaninnumber:
料框目的地的跨
p_dest_frontinnumber:
料框目的地的front
p_dest_stackinnumber:
料框目的地的堆
p_emptyinvarchar2:
是否置为空蓝
p_resultoutvarchar2:
返回结果
3.5.3示例
把料框为1234的放置楼层为3,跨为3,front为2,堆为30不为空的料框地地方:
p_resultvarchar2;
set_basket_destination(123456,1234,3,3,2,30,'N',:
p_result)
3.6队列添加指令LIST_ADD
LIST_ADD:
将料框放入某个电梯里。
3.6.1函数定义
PROCEDURE"LIST_ADD"
(
vapiSenderINVARCHAR2
vapiListNameINVARCHAR2
nvpiListItemINVARCHAR2
nupiPositionINNUMBER
nvpiListState1INNVARCHAR2
nvpiListState2INNVARCHAR2
nvpiListState3INNVARCHAR2
nvpiUserINNVARCHAR2
vapiIpHostINVARCHAR2
vapoMessageOUTVARCHAR2
)
3.6.2参数说明
vapiSenderINVARCHAR2--留用给第三方接口,默认”commons”
vapiListNameINVARCHAR2--电梯号
nvpiListItemINVARCHAR2--料框号
nupiPositionINNUMBER--队列位置
nvpiListState1INNVARCHAR2--默认为空''
nvpiListState2INNVARCHAR2--默认为空''
nvpiListState3INNVARCHAR2--默认为空''
nvpiUserINNVARCHAR2--第三方接口,默认为“commons”
vapiIpHostINVARCHAR2--留用为第三方接口的IP,如COMMS的IP
vapoMessageOUTVARCHAR2--如果有错误返回错误信息
3.6.3示例
把料框为1234的放置楼层为3,跨为3,front为2,堆为30不为空的料框地地方:
list_add('comms','ListExit04',1234,1,'','','','comms','192.168.0.1',...);
3.7队列变化位置指令LIST_CHANGE_POSITION
LIST_CHANGE_POSITION:
从nvpiElem1到nvpiElem2改变电梯队列的位置。
3.7.1函数定义
PROCEDURE"LIST_CHANGE_POSITION"
(
vapiSenderINVARCHAR2
vapiListNameINVARCHAR2
nvpiElem1INNVARCHAR2
nvpiElem2INNVARCHAR2
)
3.7.2参数说明
(
vapiSenderINVARCHAR2--第三方接口,默认为”commns”
vapiListNameINVARCHAR2–电梯名称
nvpiElem1INNVARCHAR2–所在位置
nvpiElem2INNVARCHAR2–目的位置
)
3.7.3示例
如下所示,移动在ListExit04的1237的料框位置移动到1235上:
ListExit04--->ListExit04
--------------------
12341234
12351237
12361235
12371236
LIST_CHANGE_POSITION('COMMS','ListExit04',1237,1235)
3.8队列移动位置指令LIST_MOVE
LIST_MOVE:
从某个电梯的位置为nvpiListItem移到目的电梯的nupiPosition位置。
3.8.1函数定义
PROCEDURE"LIST_MOVE"
(
vapiSenderINVARCHAR2
vapiListSourceNameINVARCHAR2
nvpiListItemINVARCHAR2
vapiListDestnameINVARCHAR2
nupiPositionINNUMBER
nvpiUserINNVARCHAR2
vapiIpHostINVARCHAR2
vapoMessageOUTVARCHAR2
)
3.8.2参数说明
(
vapiSenderINVARCHAR2--第三方接口,默认为'COMMS'
vapiListSourceNameINVARCHAR2--源队列名称
nvpiListItemINVARCHAR2--源队列位置,料框编号
vapiListDestnameINVARCHAR2--目的地电梯号
nupiPositionINNUMBER--目的地位置
nvpiUserINNVARCHAR2--第三方接口,默认为'COMMS'
vapiIpHostINVARCHAR2--第三方接口,默认为COMMSip
vapoMessageOUTVARCHAR2--如果错误返回错误信息
)
3.8.3示例
移动电梯'ListExit04'的料框号1234到'ListExit01的1的位置:
list_move('COMMS','ListExit04',1234,'ListExit01',1,'COMMS','127.0.0.1',....)
3.9队列移动位置指令LIST_REMOVE
LIST_REMOVE:
从某个电梯里移除某一项。
3.9.1函数定义
PROCEDURE"LIST_REMOVE"
(
vapoSenderINVARCHAR2
vapiListnameINVARCHAR2
nvpiListItemINVARCHAR2
nvpiUserINNVARCHAR2
vapiIpHostINVARCHAR
vapoMessageOUTVARCHAR2
)
3.9.2参数说明
PROCEDURE"LIST_REMOVE"
(
vapoSenderINVARCHAR2--第三方接口,默认为COMMS
vapiListnameINVARCHAR2--队列列名,电梯号
nvpiListItemINVARCHAR2--料框名称
nvpiUserINNVARCHAR2--第三方接口,默认为COMMS
vapiIpHostINVARCHAR--第三方接口,默认为COMMS的ip
vapoMessageOUTVARCHAR2--如果错误信息发生返回错误信息
)
3.9.3示例
移动电梯'ListExit04'的料框号1234:
LIST_REMOVE('COMMS','ListExit04',1234,'COMMS','127.0.0.1',....)
3.10移动仓库的位置到另外一个位置指令add_crane_cmd
add_crane_cmd:
从仓库某位置移到另一位置。
3.10.1函数定义
procedureadd_crane_cmd
(
p_basket_numinnumber
p_src_floorinnumber
p_src_spaninnumber
p_src_frontinnumber
p_src_stackinnumber
p_dest_floorinnumber
p_dest_spaninnumber
p_dest_frontinnumber
p_dest_stackinnumber
p_resultoutvarchar2
)
3.10.2参数说明
(
p_basket_numinnumber–移动料框号
p_src_floorinnumber--料框所在楼层
p_src_spaninnumber--料框所在跨
p_src_frontinnumber--料框所在front
p_src_stackinnumber--料框所在堆。
p_dest_floorinnumber--料框目的楼层
p_dest_spaninnumber--料框目的跨
p_dest_frontinnumber--料框目的front
p_dest_stackinnumber--料框目的堆
p_resultoutvarchar2--如果发生错误返回错误信息
)
3.10.3示例
移动仓库的1234料框从3层2跨1frong12堆移到3层2跨1front19堆上:
add_crane_cmd(1234,3,1,1,12,3,2,1,19,...)
3.11删除移动仓库的料框指令delete_crane_cmd
delete_crane_cmd:
删除将要移动仓库的料框的队列。
3.11.1函数定义
proceduredelete_crane_cmd(
p_sequenceinnumber
p_resultoutvarchar2
)
3.11.2参数说明
p_sequenceinnumber--要移除的顺序号
p_resultoutvarchar2
3.11.3示例
移除在CRANES_COMMAND队列中的顺序号:
delete_crane_cmd(1234,...)
3.12更改移动仓库的料框指令modify_crane_cmd
modify_crane_cmd:
更改将要移动仓库的料框的队列。
3.12.1函数定义
proceduremodify_crane_cmd
(
p_basket_numinnumber
p_src_floorinnumber
p_src_spaninnumber
p_src_frontinnumber
p_src_stackinnumber
p_dest_floorinnumber
p_dest_spaninnumber
p_dest_frontinnumber
p_dest_stackinnumber
p_resultoutvarchar2
)
3.12.2参数说明
(
p_basket_numinnumber–移动料框号
p_src_floorinnumber--料框所在楼层
p_src_spaninnumber--料框所在跨
p_src_frontinnumber--料框所在front
p_src_stackinnumber--料框所在堆。
p_dest_floorinnumber--料框目的楼层
p_dest_spaninnumber--料框目的跨
p_dest_frontinnumber--料框目的front
p_dest_stackinnumber--料框目的堆
p_resultoutvarchar2--如果发生错误返回错误信息
)
3.12.3示例
更改仓库的1234料框从3层2跨1frong12堆移到3层2跨1front19堆上:
modify_crane_cmd(1234,3,1,1,12,3,2,1,19,...)
4成品仓库管理实例
4.1物料进仓调度
4.1.1空框进库
物料在进仓前,扫描料框条码与物料条码后,料框信息及框内物料信息录入ERP系统,并由ERP系统记录料框与物料的对应数据。
然后向自动化仓库PLC系统系统输入料框进仓命令,如:
“SET_BASKET‘1696’,‘1’,‘False’”,把料框从1号捡料区放置到仓库。
物料在调运到指定位置后,ERP系统再次确认进库完成,即可通过“自动化仓库PLC系统系统数据与ERP系统数据的关系”查询到料框及物料的完整即时库存信息。
4.1.2并框进库
取料框:
输入“TAKE_OUT_BASKET‘1696’,‘1’”,把料框‘1696’放置到1号捡料区;
录入ERP系统:
先扫描料框与物料进ERP系统,ERP系统更新料框与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 草案 NPLY02329 自动化 仓库 PLC 数据 接口标准