从matlab发送十六进制长泵设备

33视图(30天)
大家好
首先,我是一个初学者在通信协议
最近,我开始试图控制LongerPump BT1002J matlab。我能控制它与一个特殊的软件(图片1),一切正常
我想使用Matlab能够发送相同的设备,但是我认为销的格式不正确,泵似乎不明白我发送它。
我使用了关注代码:
清晰的所有
instrreset
s =串口(“COM6”,1200);
fopen ()
Str =“E9 01 06 57 4 00 0 01 01 10 ';
D = sscanf (Str,“% 2 x”);
写入文件(s D“uint8”)
我试图把E9 01等之间的空白,但它不是有效的。行发送(我和RS485转换器,可以看到它的led灯。
谁能请纠正代码中的错误
谢谢你的帮助
10评论
马修
马修 2023年3月21日
编辑:马修 2023年3月21日
你好先生,首先非常感谢你的回答,很抱歉我的缓慢
如果我理解你所说的,我需要使用定型()函数来转换我的str命令( ' E9 1 f 06 57 4 00 0 01 01 0 e”)十六进制格式写入文件不工作因为我想。然后,我应该通过我的串口发送转换命令?
编辑:
我尝试过这个:
% %配置串行端口的开放
s =串口(“COM8”,1200,“平价”,“甚至”,“DataBits”8“StopBits”1);%打开串口
fopen (s);
% %转换步骤的命令格式
Str =' E9 1 f 06 57 4 00 0 01 01 0 e”;%要发送命令
D = sscanf (Str,“% 2 x”)”。;
文件名= tempname +. txt”;
fid = fopen(文件名,' w ');
写入文件(fid, D,“int8”);
文件关闭(fid);
fid = fopen(文件名,“r”);
存储=从文件中读(fid,[1正],“uint8”);
文件关闭(fid);
disp(存储)
% %,命令发送到seriaporl转换后的字符串
写入文件(年代,存储,“int8”)
显示器(“命令发送”)
清晰的所有
但它不工作,因为你说写入文件是不兼容的。我应该写入文件函数替换什么?我不明白如何使用定型功能。

登录置评。

接受的答案

Daniele Sportillo
Daniele Sportillo 2023年3月21日
移动:沃尔特·罗伯森 2023年3月30日
你好,
这应该工作
s =串口(“COM8”,1200,“平价”,“甚至”,“DataBits”8“StopBits”1);%打开串口
Str =' E9 1 f 06 57 4 00 0 01 01 0 e”;
D = sscanf (Str,“% 2 x”)”。;
写(s D“uint8”);
1评论
马修
马修 2023年3月21日
移动:沃尔特·罗伯森 2023年3月30日
它的工作原理,非常感谢!

登录置评。

答案(1)

JOUDI ARMOUCH
JOUDI ARMOUCH 2023年5月19日14:04
如果可能的话,我可以知道你图片1中使用的软件吗?
3评论
马修
马修 2023年5月24日18
编辑:沃尔特·罗伯森 2023年5月24日18:05
你好,
我目前使用下面描述的程序。我只是正常运行代码,但串行Explorer的作品。不要忘记来实现正确的参数( “COM8”, 1200年,“平价”,“甚至”、“DataBits”, 8 ' StopBits ', 1)
对于PC和泵之间的联系,我使用:
  • 工业USB转换器连接到电脑:Waveshare RS485转换器与原FT232RL波特率300 - 921600个基点
  • 简单的电缆
  • DB15 rs485转换器连接到泵(附加在文档中,第二从右侧“rs485 05.49.31.E”),这是与泵销售
我希望这将帮助你

登录置评。

类别

找到更多的在输入命令帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!