NJ/NX将数据写入到SD中,保存为CSV文件格式

该实验详细描述了如何使用NJ501-1300PLC将不同数据类型如Byte、Int、Real转换为字符串并写入SD卡的CSV文件中,以确保在Excel中正确显示。过程中提到了编码问题,例如UTF-8和ANSI,以及如何处理数字类型数据的乱码问题。实验步骤包括数据转换、文件路径指定、覆盖选项设置,并展示了实验结果和注意事项。
摘要由CSDN通过智能技术生成

NJ/NX将数据写入到SD中,保存为CSV文件格式

实验时间:2022.10.31

实验人员:钱少青

实验器材:NJ501-1300(Ver:1.12),HMC-SD291(2G),SysmacStudio(ver:1.52)

实验目的:将Byte、Int、Real、String等类型的数据写到SD卡,保存为CSV文件可在Excel中打开

实验步骤:

1. 编码与解码

在这里插入图片描述

​ 当发送的是字符串的数组时,PLC默认是以UTF-8编码后将对应的16进制数写入到文件中。如果发送的是Byte、Int、Real等数字类的数据时,会直接将其16进制写入到文件中,这个过程不存在编码码的问题。但是在电脑中使用软件打开时显示的均为文本格式,软件会根据设定的编码格式对文件中的16进制数据进行解码。比如Byte类型的1122写入到文件后仍然是1122,但是软件用UTF-8或者其他编码类型解码时,1122可能显示就是乱码。

​ 在使用Excel打开时,默认的解码方式为ASNI。如果写入的字符串是ASCII码表中可以查到的,那么常用的编码类型都可以直接解码。如果是汉字等字符,需要先将文件的编码类型改为ASNI后才能正常显示,否则是乱码。

​ 在本次实验中为了解决数字类数据直接写到CSV文件中显示乱码的问题,在PLC先将数字类的数据全都转换为字符串的格式表示,这样在Excel中显示时就不会出现乱码的情况。

###2. 本次实验主要包含两个部分:

  1. SD卡写入指令FileWriteVar的基本使用

    • 保存路径的指定;
    • 是否需要覆盖已经存在的文件;
  2. 将Byte、Int、Real等数字型数据转换为字符串格式才能在Excel中显示,String类型不需要

    • 先用** _TO_STRING指令将数字类型转换为字符串类型;
    • 再用insert指令将字符串拼接为CSV文件需要的格式;
      • 单元格之间用英文的逗号“,”隔开;
      • 换行用回车、换行(0D0A Hex);

程序编写:

本次实验将Byte类型的数组[11, 22, 33, 44, 55, 66, 77, 88] 以2行4列写入到CSV文件中,路径为SD卡的根目录test.csv。

变量表:
在这里插入图片描述

程序:OverWrite设置为True,如果文件里有重名的文件将会被覆盖

在这里插入图片描述

在这里插入图片描述

实验现象:

将写入的数组元素数Length设置为8,每行数据的个数Column设置为4,触发WriteToSDCard_Ex执行SD打卡写入,在SD卡中可以看到生成的test.csv文件,如图:

在这里插入图片描述

将文件复制到桌面后打开,显示内容如下:

在这里插入图片描述

注意事项:

  1. PLC发送String类型的数据数据时编码类型为UTF-8,EXCEL打开CSV文件时默认的格式ANSI,所以需要将SD中的文件编码转换为ANSI。可以先用记事本打开另存为格式选ANSI;
  2. 如果不将数字型的数据转换为字符串发送是没有办法在EXCEL中显示的,可用NotePad++安装HexEditor插件显示十六进制的数据;
  3. CSV中单元格以英文","逗号隔开,换行用回车换行,转移字符为”$r$l“;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M_qsqsqsq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值