1.使用HSL作为测试工具向PLC写入,选择inovanceTcpNet并连接plc。
2.plc创建一个字符串变量,地址分配为D6000(随便设)。
3.不做任何修改的情况下向plc写入字符串“12345”。plc表现为2143,表面看丢失了一位。
4.勾选字符串颠倒后再次写入,这次正确显示“12345”。
5.使用监视器监控实际物理地址会发现,第一次写时后D6000至6002表现为以下形式。
而第二次勾选字符串颠倒后表现为
6.也就是说第一次写入时数据并未丢失,如果此时用上位机读取,数据也仍然是“12345”。
7.其中原因就在于HSL默认使用大端,而汇川easy默认小端(不知道大小端deepseek下)。
又因为plc在处理字符串时以空为结束,因此当存储方式为第一种时,如果plc显示所有内容应该为“2143空5”,所以到空的时,后面就默认不显示了。
8.这会有什么影响?
如果仅仅是写入再读取其实没什么影响,但是如果plc要对字符串进行操作就会出问题,比如字符串长度检出“LEN”、遍历等就会得到错误答案了。
9.结论:当使用hsl库向汇川easy写入字符串时需要将“字符串颠倒”属性设置为true。
ps:修改ABCD,BADC,CDAB,DCBA写入方式只对数值类型生效,对字符串是不生效的,不要搞混了。