更新记录

1.0.1(2023-07-14)

DCloud初版


平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


插件使用说明

注意事项

1,购买本插件前,请先试用,并充分自测确认满足需求之后再行购买。一经购买,概不退还。

2,如有使用上的疑问请QQ(303931362)与作者沟通交流。

3,本插件目前仍在优化完善阶段,欢迎大家使用帮助作者完善插件。

本插件

支持数据读写

支持读写DB区,I区,Q区,M区,V

支持读写西门子S1500S1200S200Smart

支持PLC自动重连

知识点

知识点1:地址的格式以及对应含义,兼容大小写

简写 区域 字节索引 位索引 PLC类型
DB1.1.2 DB1区 1 2 S1200/S1500
DB2 DB2区 0 0 S1200/S1500
DB3.3 DB3区 3 0 S1200/S1500
D1.1.2 DB1区 1 2 S1200/S1500
Q1.6 Q区 1 6 S1200/S1500
Q1 Q区 1 0 S1200/S1500
I2.5 I区 2 5 S1200/S1500
I2 I区 2 0 S1200/S1500
M3.2 M区 3 2 S1200/S1500
M3 M区 3 0 S1200/S1500
V2.1 V区 2 1 S200Smart
V2 V区 2 0 S200Smart

知识点2:访问数据类型与JAVA数据类型和PLC数据类型对应关系

访问数据类型 数据类型名称 数据大小[位] 数据大小[字节] JAVA数据类型 PLC数据类型 示例
boolean 布尔类型 1 1/8 Boolean BOOL true
byte 字节类型 8 1 Byte BYTE 0x11
uint16 无符号2字节整型 16 2 Integer WORD/UINT 65535
int16 有符号2字节整型 16 2 Short WORD/INT -32760
uint32 无符号4字节整型 32 4 Long DWORD/UDINT 70000
int32 有符号4字节整型 32 4 Integer DWORD/DINT -70000
float32 4字节浮点型 32 4 Float REAL 3.14
float64 8字节浮点型 64 8 Double LREAL 3.14
string 字符型 8 1 String String ABC
time 时间/耗时 32 4 Long Time 100ms
date 日期 16 2 LocalDate Date 2023-04-03
timeOfDay 一天中的时间 32 4 LocalTime TimeOfDay 10:22:11

知识点3:PLC地址与本项目地址和数据类型的对应关系

PLC地址 位大小 字节大小 访问地址 访问数据类型 PLC类型
DB100.DBX0.0 1 1/8 DB100.0.0 boolean S1200/S1500
DB100.DBB5 8 1 DB100.5 byte S1200/S1500
DB100.DBW6 16 2 DB100.6 uint16/int16 S1200/S1500
DB100.DBD3 32 4 DB100.3 uint32/int32/float32 S1200/S1500
VB100 8 1 V100 byte S200Smart
VW100 16 2 V100 uint16/int16 S200Smart
VD100 32 4 V100 uint32/int32/float32 S200Smart
MB1 8 1 M1 byte -
MW1 16 2 M1 uint16/int16 -
MD1 32 4 M1 uint32/int32/float32 -

加载插件

var xyS7 = uni.requireNativePlugin("xy-S7PLC")

连接

    var ret = xyS7.connect({
            ip: "192.168.0.1",
            port:102,   //西门子默认端口102
            rack:0,
            slot:1
        })

关闭连接

xyS7.close()

读写方法

// write boolean
var ret = xyS7.writeBoolean(address,data);

// write byte
var ret = xyS7.writeByte(address,data);

 // write UInt16
 var ret = xyS7.writeUInt16(address,data);

 // write UInt32
 var ret = xyS7.writeUInt32(address,data);

 // write float32
 var ret = xyS7.writeFloat32(address,data);

 // write writeFloat64
 var ret = xyS7.writeFloat64(address,data);

 //  write String
 var ret = xyS7.writeString(address,data);

 // write time
 var ret = xyS7.writeTime(address,data);

 // write date
 var ret = xyS7.writeDate(address,data);

 // time of day
 var ret = xyS7.writeTimeOfDay(address,data);

 //  read boolean
var ret = xyS7.readBoolean(address);

 //  read byte
var ret = xyS7.readByte(address);

 //  read UInt16
var ret = xyS7.readUInt16(address);

 //  read UInt32
var ret = xyS7.readUInt32(address);

 //  read float32
var ret = xyS7.readFloat32(address);

 //  read float64
var ret = xyS7.readFloat64(address);

 //  read String
var ret = xyS7.readString(address);

 //  read time
var ret = xyS7.readTime(address);

 //  read date
var ret = xyS7.readDate(address);

 //  read time of day
var ret = xyS7.readTimeOfDay(address);

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问