适用于所有使用S7协议的PLC 这次项目我所应用的PLC品牌是西门子 1.maven导入依赖
<dependency> <groupId>si.trina</groupId> <artifactId>moka7-live</artifactId> <version>0.0.13</version> </dependency>
2.连接PLC S7Client plc = new S7Client(); plc.SetConnectionType(S7.OP); plc.ConnectTo("10.171.xxx.x", 0, 1); 参数为 plc地址 架号 插槽
3.读取DB块数据
plc.ReadArea(S7.S7AreaDB, 14400, 40, 1, Buffer); 参数依次为(读取DB块(固定),DB块编号,偏移量,字节大小,读取到的数据存入的地址); 此处存入的Buffer数组为byte[1]; 8个bool占一字节 所以声明1字节就够了
4.获得数据
1)获得bool数据
S7.GetBitAt(Buffer, 0, 4);参数各为(读取的数据,数组的下标,偏移量小数点) 这句代码的意思就是读取 数组下标0数据中偏移量4的值 返回true或false 对应下图220工位占位信号
2)获得String数据
S7.GetStringAt(Buffer,0,Buffer.length); 参数依次是(读取的数据,解析起始位置,解析结束位置)
5.关闭plc的连接
plc.Disconnect();
我也是最近项目需要才刚接触到plc相关知识,一些浅显的知识希望可以帮助到大家