如何实现SIMOTION设备与CF卡的绑定

n

对于OEM设备制造商,如何防止自已的产品被别人抄袭复制是一个重要的问题。虽然在SIMOTION产品中对设备的项目及程序提供了上传保护功能,以防止其他人得到原程序文件。但是若将原CF卡的内容完全拷贝到另一张新的CF卡中,将新卡插入到另一台SIMOTION设备上也可运行程序,因此不能完全杜绝产品被别人抄袭复制的可能性。在此介绍一种解决问题的方法,即通过在程序中增加读取当前使用的SIMOTION 设备及其上使用CF卡的硬件序列号,只有读取的硬件序列号正确才允许设备工作,否则设备不工作,以实现SIMOTION设备与CF卡的绑定。n

1 、函数介绍

使用两个系统函数来读取SIMOTION 设备及其上使用CF卡的硬件序列号:n

l _getMemoryCardId

此功能块用于读取CF卡指定的硬件标识符(硬件序列号) 。

返回值:n

为结构类型变量,变量类型为: StructRetGetMemoryCardId ,说明如下:

结构

名称

数据类型

单位

functionResult

结果

UDINT

-

id

读取的ID

STRING

-

n

返回值描述:n

16#00000000 读出CF卡指定的硬件标识符完成,无错误。n

16#FFFFFFFD 内部错误。n

16#FFFFFFF8 无效参数。n

参数idType :n

为枚举类型变量,变量类型为:EnumMemoryCardIdType ,默认值为“” Memorycard serial number ”n

l _getDeviceId

此功能块用于读取Simotion CPU指定的硬件标识符(硬件序列号)。

返回值:

为结构类型变量,变量类型为: StructRetGetDeviceId ,说明如下:

结构

名称

数据类型

单位

functionResult

结果

UDINT

-

id

读取的ID

STRING

-

n


返回值描述
:n

16#00000000:读出CPU指定的硬件标识符完成,无错误。n

16#FFFF80C3:信息无效。n

16# 16#FFFF8090:不正确的传输参数。n

16#FFFF8099:内部错误。n

参数idType :n

为枚举类型变量,变量类型为:EnumDeviceIdType ,说明如下:

SERIAL_NUMBER (0)

CPU 序列号

HW_TYPE (1)

模块类型

SPECIFIC_NUMBER (2)

指定的 OEM 号码

ORDER_ID (3)

模块订货号

n


2
、程序创建

l 创建程序单元“getmemorycardid”,调用“_getMemoryCardId”系统函数:

如何实现SIMOTION设备与CF卡的绑定
n

调用“_getdeviceId”系统函数:

如何实现SIMOTION设备与CF卡的绑定

l 将程序分配至BackgroudTask中:n

如何实现SIMOTION设备与CF卡的绑定

l 读取的SIMOTION设备及CF卡的硬件序列号:

如何实现SIMOTION设备与CF卡的绑定

如何实现SIMOTION设备与CF卡的绑定

l 读出当前使用CPU及CF卡的硬件序列号看是否与指定的序列号相一致,如果一致则将标志位“RunConditionOK”置1,此标志位做为设备运行或程序运行的条件:

如何实现SIMOTION设备与CF卡的绑定

关键词
SIMOTION,CF 卡

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc328916.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论