luelyzeng
岁月不饶人,我亦未曾饶过岁月
级别: 工控侠客
精华主题: 0
发帖数量: 356 个
工控威望: 2101 点
下载积分: 848 分
在线时间: 187(小时)
注册时间: 2015-01-12
最后登录: 2024-06-20
查看luelyzeng的 主题 / 回贴
楼主  发表于: 2023-07-16 23:49
用5u做了一个套接字通信,接收到的数据是一串字符,
比如:  S123,456,789E
应该怎么把三个数据分别通过分隔符","提取分离出来?数据长度是不确定的,但有分隔符把数据分开,
请高手们不吝赐教!万分感谢!!
好好赚钱
hstec2002
级别: 论坛先锋
精华主题: 0
发帖数量: 480 个
工控威望: 1882 点
下载积分: 7635 分
在线时间: 666(小时)
注册时间: 2021-05-05
最后登录: 2024-11-17
查看hstec2002的 主题 / 回贴
1楼  发表于: 2023-07-17 08:46
用分隔符作关键字分离。
QQ: 2845452345
cythyx
级别: 家园常客
精华主题: 0
发帖数量: 452 个
工控威望: 527 点
下载积分: 1634 分
在线时间: 106(小时)
注册时间: 2019-06-27
最后登录: 2024-10-14
查看cythyx的 主题 / 回贴
2楼  发表于: 2023-07-17 09:01
图片:
提供思路吧,用字符搜索功能,字符删除,字符提取功能实现。首先去掉第一位S,,比如个1234,456,78910E ,用字符搜索功能搜索“,”在第几位,比如在第一次搜索","在第五位,然后把前4位提出,然后删除前5位剩下456.78910E,再次搜“,”提取456,出来,剩下78910E,继续搜“,”一直循环到搜不到“,”
搜到最后没有“,”了,剩下的就是78910E,把E前面的提出来就可以了。。
梦雨天涯
微信hui530527   &
级别: 网络英雄
精华主题: 0
发帖数量: 4209 个
工控威望: 7578 点
下载积分: 14804 分
在线时间: 2856(小时)
注册时间: 2016-10-31
最后登录: 2024-11-16
查看梦雨天涯的 主题 / 回贴
3楼  发表于: 2023-07-17 11:18
引用
引用第2楼cythyx于2023-07-17 09:01发表的  :
提供思路吧,用字符搜索功能,字符删除,字符提取功能实现。首先去掉第一位S,,比如个1234,456,78910E ,用字符搜索功能搜索“,”在第几位,比如在第一次搜索","在第五位,然后把前4位提出,然后删除前5位剩下456.78910E,再次搜“,”提取456,出来,剩下78910E,继续搜“,”一直循环到搜不到“,”
搜到最后没有“,”了,剩下的就是78910E,把E前面的提出来就可以了。。

大佬66666
微信hui530527      b站账号,非标自动化谭工
请不要随意加我,不会随便通过。QQ群942493953
luelyzeng
岁月不饶人,我亦未曾饶过岁月
级别: 工控侠客
精华主题: 0
发帖数量: 356 个
工控威望: 2101 点
下载积分: 848 分
在线时间: 187(小时)
注册时间: 2015-01-12
最后登录: 2024-06-20
查看luelyzeng的 主题 / 回贴
4楼  发表于: 2023-07-17 19:23
图片:
字符串搞出来了,先用搜索INSTR,再用截取MID,最后用删除STRDEL,   但现在遇到个问题,字符提取出来后,用DVAL指令CPU会报错,假如解析出来的字符是“123” , DVAL(SM400,'123',D1200,D1500:D);就报错了,但转出来的数据又是对的,什么原因呢,
好好赚钱
nbtr小赖
级别: 家园常客
精华主题: 0
发帖数量: 161 个
工控威望: 577 点
下载积分: 566 分
在线时间: 69(小时)
注册时间: 2019-08-28
最后登录: 2023-07-18
查看nbtr小赖的 主题 / 回贴
5楼  发表于: 2023-07-18 14:13
图片:



  
可以参考
luelyzeng
岁月不饶人,我亦未曾饶过岁月
级别: 工控侠客
精华主题: 0
发帖数量: 356 个
工控威望: 2101 点
下载积分: 848 分
在线时间: 187(小时)
注册时间: 2015-01-12
最后登录: 2024-06-20
查看luelyzeng的 主题 / 回贴
6楼  发表于: 2023-07-20 00:38
感谢感谢!!还有个问题,就是整数数据转成字符串再发送出去,不足的长度前面会有空格,这时候就要算每个数据的长度,然后再用DSTR指令来重新合成需要的字符串,但这样好像很笼统,有更简洁的办法吗,如果直接 用 DIN_TO_STRING 的话会带很多空格,最不理解的就是符号还在前面,那么发送出去的数据就成了  “ -      123”类似的了
好好赚钱
ruanzhaoqi
追梦者
级别: 略有小成
精华主题: 0
发帖数量: 7 个
工控威望: 245 点
下载积分: 5443 分
在线时间: 27(小时)
注册时间: 2021-09-04
最后登录: 2024-11-12
查看ruanzhaoqi的 主题 / 回贴
7楼  发表于: 2023-07-24 10:27
学习了 感谢各位大佬分享