当前位置:网站首页>CODESYS讀取csv文件的方法(非excel)
CODESYS讀取csv文件的方法(非excel)
2022-04-22 00:01:00 【tnt1314】
1、序言
CSV是一種通用的、相對簡單的文件格式,被用戶、商業和科學廣泛應用。最廣泛的應用是在程序之間轉移錶格數據,而這些程序本身是在不兼容的格式上進行操作的(往往是私有的和/或無規範的格式)。因為大量程序都支持某種CSV變體,至少是作為一種可選擇的輸入/輸出格式。 如果你的機器上裝了 Microsoft Excel的話,.csv 文件默認是被Excel打開的。
codesys具有文件打開,文件讀取,文件寫入的功能塊和庫,那麼csv格式的文件能否在codesys中打開呢,答案是顯而易見的,接下來我們就來介紹下具體的操作方法。
2、CSV數據格式
逗號分隔值(Comma-Separated Values,CSV,有時也稱為字符分隔值,因為分隔字符也可以不是逗號),其文件以純文本形式存儲錶格數據(數字和文本)。純文本意味著該文件是一個字符序列,不含必須像二進制數字那樣被解讀的數據。CSV文件由任意數目記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或制錶符。
我們以一個文件數據為例來說明:用EXCEL打開DATA.CSV文件,看到如下數據:

我們可以用記事本模式打開,可以看到如下內容:

通過對比我們可以發現,本例中的CSV的數據通過“,”隔開,空白的地方沒有數據,同時需要注意的是第二行與第一行之間存在換行符,記事本也顯示不出來,但總體我們可以把CSV數據看作是一串字符序列。
3、文件讀取功能塊
3.1、文件讀取功能塊
codesys讀取文件需要添加4個庫文件,本例使用codesys軟件版本為V3.5.14.10:
a、SysFile, 3.5.15.0(System):該庫提供訪問文件的功能
b、SysTypes2 Interfaces, 3.5.4.0(System):該庫提供訪問文件的數據格式
c、Util, 3.5.15.0(System):該庫提供數據類型轉換
d、StringUtils, 3.5.15.0(System): 該庫包含處理字符串的函數
庫文件添加方式這裏不做介紹。
3.2、功能塊指令介紹
文件讀取功能主要用到 SysFileOpen,SysFileGetSizeByHandle,SysFileRead,SysFileGetPos,SysFileClose五個指令,功能作用分別如下:





3.3、CSV讀取基本流程
CSV文件讀取的步驟如下:
a、通過SysFileOpen指令打開文件;
b、通過SysFileGetSizeByHandle獲取文件字符序列大小;
c、通過SysFileRead讀取一次讀取字符序列,並按順序依次存入預先設好的數組中;
d、通過SysFileGetPos獲取文件指針比特置,判斷是否讀取了所有數據;
e、通過SysFileClose關閉CSV文件,若文件不關閉,則下次無法讀取。
f、數組數據處理。
4、程序編寫
本例通過ST語言編寫
4.1、創建變量
變量錶創建如下:文件路徑根據實際情况設置,路徑中不能包含中文,否則無法識別!!。

4.2、程序編寫
a、讀取文件數據
b、數據處理
通過SysFileRead指令讀取出來的CSV字符序列的原始數據為ASCII碼值,需要通過轉換,再進行合並處理,需要避開"逗號","回車和換行",並需要通過"逗號","回車和換行"來確定對應數據的具體比特置,篇幅限制,不做詳細解釋,數據處理程序如下:

4.3、創建可視化視圖
使用多個文本框建立與數據對應的錶格,並通過文本變量與數組連接,單按鈕控制,視圖如下:

變量連接如下:


4.4、運行結果
通過仿真運行我們先查看原始數據,可以通過對應ASCII碼錶與原數據進行對比,結果如下:


通過ascii對比驗證可以得出,讀取的數據沒有問題。
再來驗證數據轉換後與錶格數據的對應,仿真結果如下:
codesys讀取csv文件的視頻演示
5、綜述
通過以上分析,程序編寫及驗證,codesys通過文件讀取功能塊是完全可以實現對CSV文件數據的讀取,下一篇文章將對寫入功能進行探討。
需要注意的是:
1、讀取CSV時,我們發現需要將所有數據讀取出來,通過"逗號"、"換行"、"回車"等符號才能確定所有數據的對應比特置,因此即使我們僅僅需要其中的一個數據,也需要將所有數據讀出。
2、而當數據量大的時候,我們建立的讀取數組也需要有對應的容量來存儲,否則就會丟失數據。本例中數據量較小,不超過50個,所以並無影響。
本文所采用的codesys版本為V3.5.14.10,所涉及的程序可通過以下地址下載:
https://download.csdn.net/download/qq_19979629/85196575
版权声明
本文为[tnt1314]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204212359535125.html
边栏推荐
- 1.2V镍氢电池灯太阳能草坪灯升压驱动IC丝印AaTLB封装SOT23-6和SOP8单片机IC
- AVL tree deletion, detailed illustration
- 基于apache集合工具包的并集、交集、差集工具类
- How do pinduoduo stores choose resource slots, how to sign up for activities, and what activities are most beneficial to the store?
- "National tide" building blocks, the next answer to tide play?
- How to obtain a module of a certain layer in pytorch? (it is convenient to change gradient, obtain feature map, cam, etc.)
- Judging by JS in IE and edge, you can only enter numbers, letters and date types.
- Degree of second offence
- L2-016 wish all lovers in the world are brothers and sisters who have been separated for many years (25 points)
- Kuangshi Research Institute | dark vision network: RGB IR Fusion low illumination imaging method using depth inconsistent a priori
猜你喜欢

低成本成FS68001A、FS68003无线充SOC芯片

浏览器原理学习笔记1-浏览器进程

Dw07d two in one lithium battery protection IC

R language generalized linear model GLM: linear least squares, logarithmic transformation, Poisson, binomial logistic regression analysis, ice cream sales time series data and simulation

已有千人收藏,一起“干完”这份300页1000道面试题

7.3 creating threads

Blender mmd 导出FBX模型 和 烘焙动画

Three special data types of redis -- geospatial geospatial

已拿offer,面试必备知识点

ascript基础:事件流以及常用的事件属性
随机推荐
7.9 thread mutex
R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟
Deploy node project to ECS detailed tutorial original
University four years, self-study programming commonly used 10 learning websites
CocosCreator学习示例合集v3.4.2
7-1 object array (100 points)
Union, intersection and difference tool classes based on Apache set Toolkit
Insert create array
Distributed GNS3
L2-016 wish all lovers in the world are brothers and sisters who have been separated for many years (25 points)
Judging by JS in IE and edge, you can only enter numbers, letters and date types.
FreeFileSync的使用教程
可替换MPS MP2451的高压DCDC芯片FS2451助力智能电表设计40V0.5A降压IC
AVL tree deletion, detailed illustration
09. Raspberry pie ASP Net environment configuration
Kuangshi Research Institute | dark vision network: RGB IR Fusion low illumination imaging method using depth inconsistent a priori
"National tide" building blocks, the next answer to tide play?
插入创建数组
Basic understanding of initial redis
How to set the motion stroke and angle in SolidWorks