Codesys控制器获取控制器网口MAC地址
笔记
前言
随着项目的迭代,控制器的MAC地址这种具有唯一标识的代码变得越来越重要了。今天就来分享一个代码段用于获取MAC地址。
正文
1.加载库
SysEthernet 3.5.12.0
2.编写程序
2.1 新建程序
GetMacAddress
2.2 局部变量
VAR
bDone : BOOL ;
DiCountNet : DINT;
DiAdapter : DINT;
StrNameNet : STRING;
StrDescritionNet : STRING ;
ArrByMacAddress : ARRAY[1..6] OF BYTE ;
ArrMacAddress : ARRAY[0..9] OF ARRAY[1..6] OF BYTE ;
StrTempMacAddress : STRING;
StrMacAddress : ARRAY[0..9] OF STRING ;
END_VAR
2.3 程序代码段
IF NOT bDone THEN
getNumberofadapters(pdiNumberOfAdapters:= ADR(DiCountNet));
FOR DiAdapter := 0 TO DiCountNet BY 1 DO
getadapterinfo(
iAdapterNum := DiAdapter,
pbName := ADR(StrNameNet),
pbDescrition := ADR(StrDescritionNet),
iBuffersize := SIZEOF(StrNameNet),
iMacLength := 6,
sMacAdress := ADR(ArrByMacAddress));
ArrMacAddress[DiAdapter] := ArrByMacAddress ;
StrTempMacAddress := Byte_To_HexString(B:= ArrByMacAddress[1]);
StrTempMacAddress := CONCAT(STR1:= StrTempMacAddress, STR2:= Byte_To_HexString(B:= ArrByMacAddress[2]));
StrTempMacAddress := CONCAT(STR1:= StrTempMacAddress, STR2:= Byte_To_HexString(B:= ArrByMacAddress[3]));
StrTempMacAddress := CONCAT(STR1:= StrTempMacAddress, STR2:= Byte_To_HexString(B:= ArrByMacAddress[4]));
StrTempMacAddress := CONCAT(STR1:= StrTempMacAddress, STR2:= Byte_To_HexString(B:= ArrByMacAddress[5]));
StrTempMacAddress := CONCAT(STR1:= StrTempMacAddress, STR2:= Byte_To_HexString(B:= ArrByMacAddress[6]));
StrMacAddress[DiAdapter] := StrTempMacAddress;
END_FOR ;
bDone := TRUE ;
END_IF ;
结尾
项目中可以采用MAC作为控制器的管理,也可以作为项目的比对的标识。