diff --git a/src/main/java/com/qgs/dc/s7/my/s7connector/service/S7Service.java b/src/main/java/com/qgs/dc/s7/my/s7connector/service/S7Service.java index ef7d1da..c2c71c4 100644 --- a/src/main/java/com/qgs/dc/s7/my/s7connector/service/S7Service.java +++ b/src/main/java/com/qgs/dc/s7/my/s7connector/service/S7Service.java @@ -20,6 +20,14 @@ import java.text.ParseException; * @Author: caixiang * @DATE: 2022/1/17 14:20 */ +//tips: 外部使用这个service的read、write操作 要异常捕捉,然后在catch里面 用logger.info("记录下异常。"),这里的异常是不会被捕捉的只会向外抛。 +//关于对String、String[]操作需要注意: +// ① 单体变量 length 都是1 +// ② 数组变量 length 就是 你要read 或者write数组的长度 +// ③ bitOffset 是针对Bool 来说的,其他变量bitOffset 都是0 +// ④ strSize 这个字段只是给 String变量 和 String[]变量 用的, 这个字段是plc中设置的最大String长度 +// ⑤ String类型 在write的时候禁止 write中文,因为plc中编码并没有采用UTF-8 而是采用ASCII +// (同理也是,当plc中有设置String类型或者StringArray那么告诉他们必须指定长度 通常他们也会指定长度的。) @Component public class S7Service { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -46,7 +54,7 @@ public class S7Service { * Integer(无符号)(后续扩展) * Char ===> Character * WChar ===> Character - * String ===> String + * String ===> String (特殊) * 数组变量 @@ -61,7 +69,7 @@ public class S7Service { * UIntArray ===> List * USIntArray ===> List * UDIntArray ===> List - * + * StringArray ===> String[] (特殊) * * * */ @@ -190,7 +198,7 @@ public class S7Service { * * Char ===> Object newValue = 'a' * WChar ===> Object newValue = '菜' - * String ===> Object newValue = '你好啊' + * String ===> Object newValue = '你好啊' (特殊) * 数组变量 @@ -206,6 +214,7 @@ public class S7Service { * UIntArray ===> int[] uintArrays_content = new int[3]; * USIntArray ===> int[] usintArrays_content = new int[3]; * UDIntArray ===> int[] udintArrays_content = new int[3]; + * StringArray ===> String[] stringArrays_content = new String[3]; * //如果有其他数据类型 这里没有找我扩展 * *