LAD STL 简化自动化编程 转换为 西门子

Standard Template Library (STL) is a set of C++ libraries that provide generic algorithms and data structures. LAD (Ladder Logic) is a graphical programming language that is used to program PLCs (programmable logic controllers).

Converting STL to LAD can be challenging, as the two languages have different syntax and semantics. However, it is possible to convert some STL constructs to LAD, using a combination of ladder logic elements and structured text.

STL Constructs and LAD Equivalents

STL Construct LAD Equivalent
vector<int> v; Array[0..9] of INT
v.push_back(10); Array[10] := 10
for (int i = 0; i < v.size(); i++) { cout << v[i] << " "; } FOR i := 0 TO 9 BY 1 DO Write(Array[i]) Write(" ") END_FOR
map<string, int> m; Structured Text: VAR m: ARRAY[0..9] OF STRUCT key: STRING(10); value: INT; END_VAR
m["name"] = 10; Structured Text: m[0].key := "name"; m[0].value := 10;
for (auto it = m.begin(); it != m.end(); it++) { cout << it->first << " " << it->second << " "; } Structured Text: FOR i := 0 TO 9 BY 1 DO Write(m[i].key) Write(" ") Write(m[i].value) Write(" ") END_FOR

Example Program

Consider the following STL program:


include <iostream>
include <vector>
include <map>

using namespace std;

int main() {
  vector<int> v;

  for (int i = 0; i < 10; i++) {
    v.push_back(i);
  }

  for (int i = 0; i < v.size(); i++) {
    cout << v[i] << " ";
  }
  cout << endl;

  map<string, int> m;

  m["name"] = 10;
  m["age"] = 20;

  for (auto it = m.begin(); it != m.end(); it++) {
    cout << it->first << " " << it->second << " ";
  }
  cout << endl;

  return 0;
}

The equivalent LAD program would be:


Array[0..9] of INT
FOR i := 0 TO 9 BY 1 DO
  Array[i] := i
END_FOR

FOR i := 0 TO 9 BY 1 DO
  Write(Array[i])
  Write(" ")
END_FOR
Write(EOL)

Structured Text:

VAR
  m: ARRAY[0..9] OF STRUCT
    key: STRING(10);
    value: INT;
END_VAR

m[0].key :="name";
m[0].value := 10;
m[1].key := "age";
m[1].value := 20;

FOR i := 0 TO 9 BY 1 DO
  Write(m[i].key)
  Write(" ")
  Write(m[i].value)
  Write(" ")
END_FOR
Write(EOL)

Conclusion

Converting STL to LAD can be done, but it requires careful consideration of the different syntax and semantics of the two languages. By using a combination of ladder logic elements and structured text, it is possible to convert most STL constructs to LAD.

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论