技术论坛

请问:S7-300的数据ASCII转换指令?

作者 主题
游民

经验值: 122
发帖数: 48
精华帖: 0
请问:S7-300的数据ASCII转换指令?


只看楼主 2007-12-12 16:01:51
用CP340的ASCII协议进行传送数据,如何进行其他进制数据与ASCII码之间的互相转换?在300里是哪个指令啊?
其大无外,其小无内!
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=387278&b_id=4&s_id=0&num=4

游民

经验值: 122
发帖数: 48
精华帖: 0
回复:请问:S7-300的数据ASCII转换指令?


只看楼主 2007-12-12 21:35:27
看了些帖子知道是用FC94就是ATH转换的,FC95就是HTA转化的.
可我用FC94转换过来的不对啊?
用串口接收结果正确,详细如下:
用CP340与一单片机通讯,单片机处理一称重传感器模拟信号(以前直接用模拟量信号不稳定,改用单片机)
PLC发@#08HSOK01&%给单片机,单片机就发会采集量
首先我把上述ASCII码用16进制数发给单片机,检验正常:
A I 0.0
= L 20.0
BLD 103
CALL "P_SEND" , "DB_P_SEND"
REQ :=L20.0
R :=
LADDR :=304
DB_NO :=42
DBB_NO:=0
LEN :=24
DONE :=
ERROR :=
STATUS:=
NOP 0
对方收到后转回:
AN M 18.4
= L 20.0
BLD 103
CALL "P_RCV" , "DB_P_RCV"
EN_R :=L20.0
R :=
LADDR :=304
DB_NO :=43
DBB_NO:=0
NDR :=
ERROR :=
LEN :=
STATUS:=
NOP 0
这个DB43内放的应该是返回的ACSII码@#13AD01XXXXX&%,再进行16进制转换
CALL "ATH"
IN :=DB43.DBX0.0
N :=W#16#F
RET_VAL:=MW64
OUT :=DB41.DBX0.0
NOP 0
DB41内应当是@#13AD01XXXXX&%的16进制数吧?但监控不是,而且还不正常,而是0013AD010000000
就是没转吗?

请各位指导,用串口发生器监控发送上述数字得到的是ASCII的@#13AD01XXXXX&%啊?
其大无外,其小无内!
以下网友喜欢您的帖子:

  
游侠

经验值: 374
发帖数: 204
精华帖: 0
回复:请问:S7-300的数据ASCII转换指令?


只看楼主 2007-12-13 11:30:05
ASCII超范围了?

传输协议是ANSI还是扩展UNICODE


学习~
成功离你很近,只需你跨出一小步而已!
以下网友喜欢您的帖子:

  
至圣

经验值: 23118
发帖数: 10118
精华帖: 120
回复:请问:S7-300的数据ASCII转换指令?


只看楼主 2007-12-13 19:36:11
给ATH的输入,你自己需要限定包含数据的区域,不包含数据的就不要涵盖了
比如@,#部分。

微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
游民

经验值: 122
发帖数: 48
精华帖: 0
回复:请问:S7-300的数据ASCII转换指令?


只看楼主 2007-12-13 19:55:33
看了下ATH的F1帮助,发现只可以转0-F的ASCII码,好在我只取里面的XXXXX,都是数字的,看到是16进制的数字,把他们取出来,而且也不用转。
其实是用ASCII协议,但发送、接收前后都是16进制的,直接用就行了。
谢谢各位!
另外。看CP340的例子比较麻烦,简单点的直接使用FB2与FB3进行发送与接收就可以了,都放在一块,很简单。
其大无外,其小无内!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
请问:S7-300的数据ASCII转换指令?
×
扫描打开手机版
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。