女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數據格式轉換函數

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-01-04 10:01 ? 次閱讀

字符串數據類型

定義(Definition)

串數據類型定義一個最長254個字符的字符串。標準的區域保留有256個字符的字符串。內存區域存貯254個字符和2個頭字節。

通過定義保存在串中的字符的最大數量,能夠減少字符串要求的內存。一個空串,即沒有數據的串是最小的值。

簡單表達式當作在串中的字符的最大數量。串中允許所有ASCII代碼的字符,也能包含特殊字符,如控制字符和非打印字符。能夠用句法$hh鍵入,hh當作用十六進制表示和ASCII字符的值(如:‘$0D$0AText’)。

聲明字符串內存空間時,能夠定義能存貯在串中的最大字符數。如果不指定,則建立長度為254的串。

例子(Example)

VAR
Text1: String [123];
Text2: String;
END_VAR

在變量"Text1"聲明中的常量"123"當作在串中的最大字符數。對于變量"Text2",保留254字符的長度。

初始化字符串(Initializing Character Strings)

串變量,同其他變量一樣,能夠用常量字符串在功能塊的參數聲明中初始化。初始化函數的參數則不可能。

如果初始的串短于聲明的最大長度,多余字符不被初始化。當在程序中處理變量時,當前占用的字符位置才作考慮。

子(Example)

x : STRING[7]:='Address';

如果要求串類型臨時變量,例如緩沖結果,在他們首次使用之前,總必須在變量聲明或賦值語句中用串常量初始化。

子(Example)

FUNCTION Test : STRING[45]
VAR_TEMP

x : STRING[45];
END_VAR
x := 'a';
x := concat (in1 := x, in2 := x);
Test := x;
END_FUNCTION

沒有初始化(語句)x := 'a';,函數返回錯誤結果。

串操作函數

LEN

LEN函數(FC21)返回串的當前長度(有效字符個數)。空串('')長度為0。函數不報告錯誤。

例 LEN (S:= 'XYZ' )

CONCAT

CONCAT函數將最多32個串變量合并為一個串。如果結果串比輸出參數的串要度,結果串將限定在最大長度……

當使用S7-SCL函數CONCAT時,隱式地在“IEC函數”庫中調用FC2。

Example CONCAT (IN1:= 'Valve', IN2:= ' open')

DELETE

DELETE函數(FC 4)在一個串中從P指示的字符開始刪除L個字符。如果L和或P等于0,或者如果P大于輸入串的當前長度,返回輸入的串。如果L和P之和大于輸入串的長度,則串刪除到結束位置。如果L和/或P是負數,輸出一個空串。

Example: DELETE (IN:= 'Temperature ok', L:= 6, P:= 5)

REPLACE

REPLACE函數(FC31)用第二個串(IN2)置換第一個串中P指示的位置開始的L個字符。如果L=0,則返回第一個串。如果P為0或1,則從起始位置開始置換。如果P在第一個串長度之外,第二個串接到第一個串之后。如果P和/或L是負數,則返回空串。當結果串長于輸出參數指定的變量,則限定到最大長度。

Example REPLACE (IN1:= 'Temperature', IN2:= ' high' L:= 6, P:= 5)

FIND

FIND函數(FC11)返回第二個串(IN2)在第一個串(IN1)中的位置。查找從左開始;報告首次出現的位置。如果第一個串中不包含第二個串,則返回0。此函數不報告錯誤。

Example FIND (IN1:= 'Processingstation', IN2:='station')

串比較函數

使用S7-SCL比較函數=, <>, <, >, <=和>=能夠比較串。編譯器包括了自動調用要求的函數。簡單地列出下列函數提供全部的情況。

EQ_STRNG和NE_STRNG

EQ_STRNG (FC10)和NE_STRNG (FC29)函數比較兩個串格式的變量的內容是否相等(FC10)或不相等(FC29),并返回比較結果。如果參數串S1與參數串S2相等(不相等),則返回信號狀態“1”的值。此函數不報告錯誤。

GE_STRNG and LE_STRNG

GE_STRNG (FC13)和LE_STRNG (FC19)函數比較串格式的兩個變量大于(小于)或等于,并返回比較結果。如果參數串S1大于(小于)或等于參數串S2,則返回信號狀態“1”的值。從左開始用其ASCII代碼比較字符(如'a'大于'A')。第一個不同的字符決定了比較結果。如果較長串的左邊部分與較短串相同,則認為較長串大。此函數不報告錯誤。

GT_STRNG and LT_STRNG

GT_STRNG (FC15)和LT_STRNG (FC24)函數比較串格式的兩個變量大于(小于),并返回比較結果。如果參數串S1大于(小于)參數串S2,則返回信號狀態“1”的值。從左開始用其ASCII代碼比較字符(如'a'大于'A')。第一個不同的字符決定了比較結果。如果較長串的左邊部分與較短串相同,則認為較長串大。此函數不報告錯誤。

數據格式轉換函數

INT_TO_STRING和STRING_TO_INT

函數INT_TO_STRING和STRING_TO_INT將一個INT格式變量轉換為字符串或將字符串轉換為INT變量。函數I_STRNG (FC16)和STRNG_I (FC38)被從提供的“IEC函數”庫中隱式地使用。串用一個前置符號表述。如果在返回參數指定的變量太短,則不進行轉換。

DINT_TO_STRING和STRING_TO_DINT

函數DINT_TO_STRING和STRING_TO_DINT將一個DINT格式的變量轉換為字符串或字符串轉換為DINT變量。函數DI_STRNG (FC5)和STRNG_DI (FC37)被從提供的“IEC函數”庫中隱式地使用。串用一個前置符號表述。如果在返回參數指定的變量太短,則不進行轉換。

REAL_TO_STRING and STRING_TO_REAL

函數REAL_TO_STRING和STRING_TO_REAL將一個實數格式的變量轉換為字符串或字符串轉換為實數變量。函數R_STRNG (FC30)和STRNG_R (FC39)被從提供的“IEC函數”庫中隱式地使用。串必須有下列格式:

?v.nnnnnnnE?xx (?= 符號, v =小數點前的數字, n =小數點后的數字, x =指數數字)

如果串的長度小于14,或其不是上述格式構造,將不進行轉換。

如果返回參數指定的變量太短或IN參數中包含一個無效浮點數,沒有轉換。

SCL 字符串處理舉例:

將信息文本放到一塊(Putting together message texts)

//通過處理和存貯,將信息文本放到一塊。

////////////////////////////////////////////////////////////////////
//塊包含必要的信息文本和產生的最后20條信息
////////////////////////////////////////////////////////////////////

DATA_BLOCK Messagetexts

STRUCT
Index: int;
textbuffer: array [0..19] of string[34];
HW: array [1..5] of string[16]; // 5種不同設備
statuses: array [1..5] of string[12]; // 5種不同狀態
END_STRUCT
BEGIN
Index :=0;
HW[1] := 'Motor ';
HW[2] := 'Valve ';
HW[3] := 'Press ';
HW[4] := 'Weldingstation ';
HW[5] := 'Burner ';
Statuses[1] := ' problem';
Statuses[2] := ' started';
Statuses[3] := ' temperature';
Statuses[4] := ' repaired';
Statuses[5] := ' maintained';
END_DATA_BLOCK

////////////////////////////////////////////////////////////////////
//函數將信息廣西領先到一塊,并輸入到DB的信息文本中。信息文本存貯在一個環形緩沖區里。
//文本緩沖區的下一個空區索引也在DB信息文本內并被函數修正。
////////////////////////////////////////////////////////////////////

FUNCTION Textgenerator : bool
VAR_INPUT
unit: int;// 設備文本(名稱)的索引
no: int;// 設備的ID號
status: int;
value: int;
END_VAR
VAR_TEMP
text : string[34];
i : int;
END_VAR
// 臨時變量的初始化
text := '';
Textgenerator := true;
Case unit of
1..5 : case status of
1..5 : text := concat( in1 := Messagetexts.HW[unit],
in2 := right(l:=2,in:=I_STRNG(no)));
text := concat( in1 := text,
in2 := Messagetexts.statuses[status]);
if value <> 0 then
text := concat( in1 := text,
in2 := I_STRNG(value));
end_if;
else Textgenerator := false;
end_case;
else Textgenerator := false;
end_case;
i := Messagetexts.index;
Messagetexts.textbuffer[i] := text;
Messagetexts.index := (i+1) mod 20;
END_FUNCTION

////////////////////////////////////////////////////////////////////
//函數在%M10.0邊沿觸發時被循環程序調用,如果參數改變了,則輸入一次信息。
////////////////////////////////////////////////////////////////////

Organization_block Cycle
Var_temp
Opsy_ifx : array [0..20] of byte;
error : BOOL;
End_var;

////////////////////////////////////////////////////////////////////
//下面的調用將信息"Motor 12 started"輸入DB信息文本的文本緩沖區, %MW0為1,

//%IW2為12 及%MW2為2.
////////////////////////////////////////////////////////////////////

if %M10.0 <> %M10.1 then
error := Textgenerator (unit := word_to_int(%MW0),
no := word_to_int(%IW2),
status := word_to_int(%MW2),
value := 0);
%M10.1:=M10.0;
end_if;
end_organization_block


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4367

    瀏覽量

    64165
  • 數據類型
    +關注

    關注

    0

    文章

    237

    瀏覽量

    13819

原文標題:數據格式轉換函數

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    LPC55S28修改音頻數據格式后USB Aduio類異常的原因?

    您好 NXP 前輩,我已經更改了 LPC55S28 官方 SDK 上的 USB 音頻數據格式。 我的主要問題是修改音頻流格式類型描述符。 我的想法是將 USB Aduio 每個通道的數據字節數從 2
    發表于 03-20 07:33

    用FPGA配置TVP5150,把PAL制標準視頻轉換成BT656數據格式,能否把數據流直接給SAA7121?

    用FPGA配置TVP5150,把PAL制標準視頻轉換成BT656數據格式,請問能否把數據流直接給SAA7121這樣的編碼芯片,我這么做的,但是出來的圖像是紅色的,是不是寄存器沒配置對?還是其他什么原因?
    發表于 02-11 07:14

    使用RDATAC指令后,ADS131E04傳送的數據格式以及內容是怎樣的?

    請問使用RDATAC指令后,ADS131E04傳送的數據格式以及內容是怎樣的,數據手冊是按照ADS131E08為例來說明有27個BYTE,不知道ADS131E04是不是只用15個BYTE?
    發表于 01-10 07:19

    ads1158讀取數據,得到的數據格式是什么樣的啊?

    = SPDR; return data; } 想請教一下,其他兩種讀數據,得到的數據格式是什么樣的啊?
    發表于 12-24 08:28

    LMH0341如何轉換出的LVDS數據格式

    LMH0341轉換出的LVDS數據格式有具體參考資料嗎?我想用DM8168去作為主處理器外加LVDS轉RGB去實現。
    發表于 12-23 07:31

    FP8數據格式在大型模型訓練中的應用

    本文主要介紹了 FP8 數據格式在大型模型訓練中的應用、挑戰及最佳實踐,展示了 FP8 在提升訓練速度和效率方面的潛力和實際效果。
    的頭像 發表于 11-19 14:54 ?1443次閱讀
    FP8<b class='flag-5'>數據格式</b>在大型模型訓練中的應用

    EPS文件格式如何轉換 EPS和SVG文件的區別

    EPS文件格式轉換 EPS(Encapsulated PostScript)是一種用于存儲矢量圖形的文件格式,最初由Adobe公司開發。由于EPS文件在打印時能夠保持極高的質量,并且廣泛被各種
    的頭像 發表于 11-19 10:31 ?1827次閱讀

    ADC3561轉換成什么數據格式便于高速實時通過WIFI發送?

    5MHz的16位采樣率,LVDS格式數據輸出,使用串口轉WIFI模塊受限于串口波特率無法實現實時發送,請問轉換成什么數據格式便于高速實時通過WIFI發送
    發表于 11-18 08:06

    PCM2707的S/PDIF輸出的數據格式是什么?

    我想問一下PCM2707的S/PDIF輸出的數據格式是什么? 在網上查到的資料說是S/PDIF是用來傳輸數字信號的,可以傳輸PCM形式的信號,那是不是就是說帶有S/PDIF輸出的聲卡(比如說
    發表于 11-07 06:33

    請問AIC3106怎么設置成單聲道32位數據格式

    AIC3106 怎樣設置成單聲道 32位數據格式
    發表于 11-04 08:17

    SRC4192能否支持輸入TDM格式音頻數據,輸出I2S,進行數據格式轉換

    SRC4192這款芯片能否支持輸入TDM格式音頻數據,輸出I2S,進行數據格式轉換。在我看TI這款芯片的datasheet時候管腳描述如下: 我理解是可以TDM輸入的,可是后面關于輸
    發表于 10-25 11:41

    請問TLV320AIC3268的ADC轉換后的數據格式是什么樣的?

    我在使用TLV320AIC3268,但是不知道ADC轉換后的數據格式是什么樣的?比如是二進制補碼嗎?轉后的數據與輸入的模擬信號的電壓值有什么關系?
    發表于 10-14 07:48

    KIT_ATV_24GHZ_RADAR是否可以從網口讀取雷達的原始回波數據數據格式是怎樣的?

    請問有沒有這款開發板的調試手冊,是否可以從網口讀取雷達的原始回波數據數據格式是怎樣的?
    發表于 07-24 06:10

    態勢數據有哪些格式

    智慧華盛恒輝態勢數據格式可以因應用場景和數據來源的不同而有所差異。以下是一些常見的態勢數據格式,并進行了分點表示和歸納: 智慧華盛恒輝態勢數據
    的頭像 發表于 06-24 17:44 ?551次閱讀

    態勢數據有哪些格式和內容呢

    智慧華盛恒輝態勢數據格式和內容可以根據其應用領域和具體需求而有所不同。以下是關于態勢數據格式和內容的清晰歸納: 智慧華盛恒輝數據格式 XML: 定義:一種用于編碼文檔的標記語言,用于
    的頭像 發表于 06-11 16:57 ?754次閱讀