区域查询与修改
FUNCTION “物流管理” : Void
{ S7_Optimized_Access := ‘TRUE’ }
VERSION : 0.1
VAR_TEMP
货位编号X : Int; // 行
货位编号Y : Int; // 排
货位编号Z : Int; // 层
查询货位号X : Int;
查询货位号Y : Int;
查询货位号Z : Int;
A : Int;
B : Int;
C : Int;
E : Int;
D : Int;
F : Int;
END_VAR
BEGIN
//查询
//物料编号用物料所在位置
//货位号:111、112、113、114、115;
//货位号拆分
IF “DATA”.查询货位号> 455 OR “DATA”.查询货位号 < 111 THEN
“DATA”.查询货位号:= 111;
;
END_IF;
#查询货位号Z:=#货位编号Z := “DATA”.查询货位号 MOD 10;
#查询货位号Y:=#货位编号Y:=(“DATA”.查询货位号/10)MOD 10;
#查询货位号X:=#货位编号X := “DATA”.查询货位号 / 100;
"DATA".查询缺省.物料编号 := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料编号;
"DATA".查询缺省.物料条码 := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料条码;
"DATA".查询缺省.托盘ID := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].托盘ID;
"DATA".查询缺省.件数 := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].件数;
"DATA".查询缺省.补充信息 := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].补充信息;
//修改
//
IF "DATA".修改货位号 > 455 OR "DATA".修改货位号 < 111 THEN
"DATA".修改货位号 := 111;
;
END_IF;
#货位编号Z := "DATA".修改货位号 MOD 10;
#货位编号Y := ("DATA".修改货位号 / 10 ) MOD 10;
#货位编号X := "DATA".修改货位号 / 100;
IF "DATA".修改按钮 THEN
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料编号 := "DATA".修改缺省.物料编号;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料条码 := "DATA".修改缺省.物料条码;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].托盘ID := "DATA".修改缺省.托盘ID;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].件数 := "DATA".修改缺省.件数;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].补充信息 := "DATA".修改缺省.补充信息;
END_IF;
//删除数据
//
IF "DATA".删除货位号 > 455 OR "DATA".删除货位号 < 111 THEN
"DATA".删除货位号 := 111;
;
END_IF;
#货位编号Z := "DATA".删除货位号 MOD 10;
#货位编号Y := ("DATA".删除货位号 / 10) MOD 10;
#货位编号X := "DATA".删除货位号 / 100;
IF "DATA".删除按钮 THEN
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料编号 := 0;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料条码 := 0;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].托盘ID := 0;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].件数 := 0;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].补充信息 := 0;
END_IF;
//移动,把查询的数据移动过来
IF"DATA".移动货位号 > 455 OR "DATA".移动货位号< 111 THEN
"DATA".移动货位号 := 111;
;
END_IF;
#货位编号Z := "DATA".修改货位号 MOD 10;
#货位编号Y := ("DATA".修改货位号 / 10) MOD 10;
#货位编号X := "DATA".修改货位号 / 100;
"DATA".移动数据源.物料编号:="DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料编号 ;
"DATA".移动数据源.物料条码:="DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料条码 ;
"DATA".移动数据源.托盘ID:="DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].托盘ID ;
"DATA".移动数据源.件数:="DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].件数 ;
"DATA".移动数据源.补充信息 := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].补充信息;
IF "DATA".修改按钮 THEN
"DATA".物料信息[#查询货位号X, #查询货位号Y, #查询货位号Z].物料编号 := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料编号 ;
"DATA".物料信息[#查询货位号X, #查询货位号Y, #查询货位号Z].物料条码 := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料条码;
"DATA".物料信息[#查询货位号X, #查询货位号Y, #查询货位号Z].托盘ID := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].托盘ID;
"DATA".物料信息[#查询货位号X, #查询货位号Y, #查询货位号Z].件数 := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].件数;
"DATA".物料信息[#查询货位号X, #查询货位号Y, #查询货位号Z].补充信息 := "DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].补充信息;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料编号 := 0;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].物料条码 := 0;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].托盘ID := 0;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].件数 := 0;
"DATA".物料信息[#货位编号X, #货位编号Y, #货位编号Z].补充信息 := 0;
"DATA".修改按钮 := FALSE;
END_IF;
//物料对应数字
//托盘ID重复报警
FOR #A := 1 TO 4 DO
// Statement section FOR
FOR #B := 1 TO 5 DO
// Statement section FOR
FOR #C := 1 TO 5 DO
// Statement section FOR
FOR #E:= 1 TO 4 DO
// Statement section FOR
;
FOR #D:= 1 TO 5 DO
// Statement section FOR
;
FOR #F := 1TO 5 DO
// Statement section FOR
IF 100*#A+10*#B+#C<>100*#E+10*#D+#F THEN//不允许给自己比较
// Statement section IF
IF "DATA".物料信息[#A,#B,#C].托盘ID = "DATA".物料信息[#E,#D,#F].托盘ID THEN
// Statement section IF
"DATA".报警信息 := 1;
;
END_IF;
;
END_IF;
;
END_FOR;
END_FOR;
END_FOR;
;
END_FOR;
;
END_FOR;
;
END_FOR;
IF "DATA".复位 THEN
"DATA".报警信息 := 0;
END_IF;
END_FUNCTION