❶ 西門子PLC編程STL語言到底是啥意思啊看不懂。求大神指導
STL是PLC編程的一種,和梯形圖是不同的形式,而目的都是實現某個控制的功能。這個代碼是一系列的條件,從而實現不同的跳轉。具體目的是什麼,要根據實際的控制目的來解釋。
❷ 誰來解釋下c++中的STL用來做什麼的,推薦點學習資料
關於STL網上資料還是很多的,以下是對初學者較為好理解的:
STL(Standard Template Library),即標准模板庫,是一個具有工業強度的,高效的C++程序庫。它被容納於C++標准程序庫(C++ Standard Library)中,是ANSI/ISO C++標准中最新的也是極具革命性的一部分。該庫包含了諸多在計算機科學領域里所常用的基本數據結構和基本演算法。為廣大C++程序員們提供了一個可擴展的 應用框架,高度體現了軟體的可復用性。這種現象有些類似於Microsoft Visual C++中的MFC(Microsoft Foundation Class Library),或者是Borland C++ Builder中的VCL(Visual Component Library)
從邏輯層次來看,在STL中體現了泛型化程序設計的思想(generic programming),引入了諸多新的名詞,比如像需求(requirements),概念(concept),模型(model),容器 (container),演算法(algorithmn),迭代子(iterator)等。與OOP(object-oriented programming)中的多態(polymorphism)一樣,泛型也是一種軟體的復用技術。
從實現層次看,整個STL是以一種類型參數化(type parameterized)的方式實現的,這種方式基於一個在早先C++標准中沒有出現的語言特性--模板(template)。如果查閱任何一個版本 的STL源代碼,你就會發現,模板作為構成整個STL的基石是一件千真萬確的事情。除此之外,還有許多C++的新特性為STL的實現提供了方便。
沒有C++語言就沒有STL,這么說毫不為過。一般而言,STL作為一個泛 型化的數據結構和演算法庫,並不牽涉具體語言(當然,在C++里,它被稱為STL)。也就是說,如果條件允許,用其他語言也可以實現之。這里所說的條件,主 要是指類似於"模板"這樣的語法機制。如果你沒有略過前一節內容的話,應該可以看到,Alexander Stepanov在選擇C++語言作為實現工具之前,早以採用過多種程序設計語言。但是,為什麼最終還是C++幸運的承擔了這個歷史性任務呢?原因不僅在 於前述那個條件,還在於C++在某些方面所表現出來的優越特性,比如:高效而靈活的指針。但是如果把C++作為一種OOP(Object- Oriented Programming,面向對象程序設計)語言來看待的話(事實上我們一般都是這么認為的,不是嗎?),其功能強大的繼承機制卻沒有給STL的實現幫上 多大的忙。在STL的源代碼里,並沒有太多太復雜的繼承關系。繼承的思想,甚而面向對象的思想,還不足以實現類似STL這樣的泛型庫。C++只有在引入了 "模板"之後,才直接導致了STL的誕生。這也正是為什麼,用其他比C++更純的面向對象語言無法實現泛型思想的一個重要原因。當然,事情總是在變化之 中,像Java在這方面,就是一個很好的例子,jdk1.4中已經加入了泛型的特性。
此外,STL對於C++的發展,尤其是模板機制,也起到了促進作用。比如: 模板函數的偏特化(template function partial specialization),它被用於在特定應用場合,為一般模板函數提供一系列特殊化版本。這一特性是繼STL被ANSI/ISO C++標准委員會通過之後,在Bjarne和Stepanov共同商討之下並由Bjarne向委員會提出建議的,最終該項建議被通過。這使得STL中的一 些演算法在處理特殊情形時可以選擇非一般化的方式,從而保證了執行的效率。STL是最新的C++標准函數庫中的一個子集,這個龐大的子集占據了整個庫 的大約80%的分量。而作為在實現STL過程中扮演關鍵角色的模板則充斥了幾乎整個C++標准函數庫.
在STL還沒有降生的"黑暗時代",C++程序員要完成前面所提到的那些功能,需要做很多事情(不過這比起C程序來,似乎好一點),程序大致是如下這個樣子的:
#include <stdlib.h>
#include <iostream.h>
int compare(const void *arg1, const void *arg2);
void main(void)
{
const int max_size = 10; // 數組允許元素的最大個數
int num[max_size]; // 整型數組
// 從標准輸入設備讀入整數,同時累計輸入個數,
// 直到輸入的是非整型數據為止
int n;
for (n = 0; cin >> num[n]; n ++);
// C標准庫中的快速排序(quick-sort)函數
qsort(num, n, sizeof(int), compare);
// 將排序結果輸出到標准輸出設備
for (int i = 0; i < n; i ++)
cout << num[i] << "\n";
}
// 比較兩個數的大小,
// 如果*(int *)arg1比*(int *)arg2小,則返回-1
// 如果*(int *)arg1比*(int *)arg2大,則返回1
// 如果*(int *)arg1等於*(int *)arg2,則返回0
int compare(const void *arg1, const void *arg2)
{
return (*(int *)arg1 < *(int *)arg2) ? -1 :
(*(int *)arg1 > *(int *)arg2) ? 1 : 0;
}
試著使用一下STL,看看效果如何。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void main(void)
{
vector<int> num; // STL中的vector容器
int element;
// 從標准輸入設備讀入整數,
// 直到輸入的是非整型數據為止
while (cin >> element)
num.push_back(element);
// STL中的排序演算法
sort(num.begin(), num.end());
// 將排序結果輸出到標准輸出設備
for (int i = 0; i < num.size(); i ++)
cout << num[i] << "\n";
}
這個程序的主要部分改用了STL的部件,看起來要比第一個程序簡潔一 點,你已經找不到那個討厭的compare函數了。這個程序是足夠健壯的。
下面我們來看看這個絕版的C++程序。
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
void main(void)
{
typedef vector<int> int_vector;
typedef istream_iterator<int> istream_itr;
typedef ostream_iterator<int> ostream_itr;
typedef back_insert_iterator< int_vector > back_ins_itr;
// STL中的vector容器
int_vector num;
// 從標准輸入設備讀入整數,
// 直到輸入的是非整型數據為止
(istream_itr(cin), istream_itr(), back_ins_itr(num));
// STL中的排序演算法
sort(num.begin(), num.end());
// 將排序結果輸出到標准輸出設備
(num.begin(), num.end(), ostream_itr(cout, "\n"));
}
在這個程序里幾乎每行代碼都是和STL有關的(除了main和那對花 括弧,當然還有注釋),並且它包含了STL中幾乎所有的各大部件(容器container,迭代器iterator, 演算法algorithm, 適配器adaptor)
推薦資料 <<C++ Templates 中文版>>
《泛型編程與-STL中文版》
《C++ STL 中文版》
《Effective.STL中文版》
❸ c++ 的 stl windows sdk mfc wtl 這幾個部分應該怎麼學習啊
1.打牢C++的語言基礎。
2.STL是C++的標准庫,基於模板技術,結合泛型設計思想,是一套學習C++本身的很好的庫,但需要很好的C++語言功底。在一般的C++書籍中,都會有STL的章節,不過一般只是講如何應用它。在學習數據結構的時候,結合STL來學習容器和演算法,再好不過,推薦書籍《STL源碼剖析》(侯捷),如果你覺得需要掌握更深層次的模版技術並加強對模版的正確認識和了解,請看《C++ Templates中文版》。
3.對於windows sdk,你可以看《windows 程序設計》(Charles Petzold),裡面的例子全是用C寫就的,有了C/C++的基礎,這些例子都很簡單。跟著書本循序漸進,你會獲益良多。接下來,你可以看《windows核心編程》(Jeffrey Richter),裡面有很多高級技術,例子也用C++寫成。讀完這兩本書,你對windows環境下的編程就有了清晰的了解。
4.對於MFC,有了第三部的積累,小菜一碟。前提是第三部分你要掌握的非常良好。如果你初讀《MFC深入淺出》(侯捷),你可能會覺得有所困難,不過不要泄氣,硬著頭皮也要學完前幾章,待到你把前幾章弄通後,哈,後面的就很容易學下去了,而且充滿樂趣(對我而言是如此的)!
5.WTL,一個非常棒的Frame。你學好了模板,再結合你對MFC的了解,學習WTL再簡單不過了。WTL最好的一個地方在於,它是基於模版和多重繼承實現的。由於模版的特性,WTL所有的源代碼都在頭文件中,這些源碼正是學習WTL的最好方法。到了這個階段,你會覺得,看WTL源代碼是一件頗為享受的事情,因為你得以一窺它是如何實現與MFC同名的一些函數的。自然,這里有一本書(其實不能算書,是Code Project上的一系列文章的集合),叫做《WTL for MFC programmer》,有中文版。
關於其它,對於windows的高級技術COM/COM+,已經不是現今的主流技術了,《COM本質論》的作者也說在.net大行其道的今天,COM已經沒落了,但現在windows的很多關鍵部分仍在應用COM,谷歌地球的自定義編程也是COM方面的內容。簡單來說,COM是基於二進制防火牆的跨平台的技術,內容繁雜,你可以先看《COM技術內幕》,再看《COM本質論》,如果你感興趣的話。我當時光看COM中的聚合,就搞得頭大。
學完COM,你能幹什麼呢?還不到時候。接下來就到ATL(活動模板庫)了,它是基於COM的框架。具體的內容我也沒怎麼學,我倒是買了本《ATL技術內幕》,留待以後學習吧。
拋開windows,但看C++本身,有很多有趣的東西。我首推《C++模板元編程》,這是一本考驗耐性和智力的書。同時你必然就接觸到了Boost庫,這個庫的名氣很大,我就不贅述了。如果你有興趣,可以看看腳本語言與C++的混合編程(僅是個人推薦,看你興趣),其中之一就是Boost::Python和C++的混合編程(當然,Python是一種獨立的腳本語言,Boost::Python只是用於C++編程的)。
還有什麼呢,還是模板,依舊是泛型編程。先提一個項目,「大芒果」,魔獸世界的網路變「單機」的伺服器。裡面應用到了很多這本書介紹的技術:《C++設計新思維-泛型編程與設計模式之應用》。當然,對於這么大一個項目,這只是冰山一角。
還有嗎?當然,數之不盡……
❹ 請問西門子PLC編程語言「語句表(STL)」的全拼是什麼
STL
(Standard
Template
Library
)
語句表
(STL)
300/400系列PLC的硬體系統及內部資源,
第3章介紹了S7—300/400系列PLC的定址方式和指令系統,
並結合實例重點講解了語句表(STL)及梯形圖(LAD)指令的使用方法,
第4章介紹了STEP7軟體的編程環境及PLC應用系統設計的內容和方法,
第5章介紹了用STL.
❺ S7系列的PLC的編程語言LAD、STL、SCL、GRAPH、HIGRAPH、CFC分別是什麼意思
LAD:梯形圖----------日系稱作為LD
STL:指令表---------日系稱作為IL
SCL:結構文本-------日系稱作為ST
GRAPH:圖形編程-----日系稱作為SFC
HIGRAPH:高級圖形編程
CFC:連續功能編程。
深圳精展達高工0755-33181913,13480903564一級代理LGPLC,西門子PLC,LG變頻器,LG觸摸屏,威綸觸摸屏,weinview觸摸屏,eview觸摸屏,四方變頻器,雷賽步進,KINCO步進,KINCO伺服等自動化產品兼具非標設備程序編程開發,質量保證,價格優惠,買工控,精展達!
SFC是功能塊、不是語言、最常用的語言是LAD就是梯形圖、簡單明了、其他的要看隨便找本PLC書上面就有
結構化控制語言編程結構和C語言和Pascal語言相似,特別適合於習慣於使用高級語言編程的人使用。SCL程序可以在CPU314及其以上的S7(包括400)中運行。
德國西門子(SIEMENS)公司生產的可編程序控制器在我國的應用也相當廣泛,在冶金、化工、印刷生產線等領域都有應用。西門子(SIEMENS)公司的PLC產品包括LOGO、S7-200、S7-1200、S7-300、S7-400等。 西門子S7系列PLC體積小、速度快、標准化,具有網路通信能力,功能更強,可靠性高。S7系列PLC產品可分為微型PLC(如S7-200),小規模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。
INCP 加一巧謹指令
LD X0
INCP D0 X0驅動一次D0裡面的數字增加1
DECP 減一指令。與上面相反。
奧迪的劃分A是轎車,A4是中型車(B級車),A6是中大型亂御車(C級車),A8是豪華車(D級車),A5是轎跑車。S是高性能版本。比如奧迪S6和S8採用的是V10發動機。S5是V8發動機。此外更高性能的車是RS系列,比如奧迪RS6的V10雙渦輪增壓發動機達到了580匹馬力,是奧迪家族中功率最高的。R是超跑R8,只有V8雙渦輪增壓版和V10自然吸氣版。此外還有Q,有Q5和Q7。Q就是Quattro的縮寫,這是奧迪引以為傲的四輪驅動技嘩寬岩術。Q5和Q7的全系都是四輪驅動的。5顧名思義就是介於6和4之間的數,Q5比A4大,比A6小。Q7比A6大,比A8小。此外,奧迪只有四輪驅動和前輪驅動,沒有後輪驅動的奧迪。
I2C匯流排由數據線SDA和時鍾信號線SCL構成串列匯流排,可發送和接收數據。在CPU與被控IC之間、IC與IC之間進行雙向傳送,最高傳送速率100kbps。各種被控制電路均並聯在這條匯流排上,但就像電話機一樣只有撥通各自的號碼才能工作,所以每個電路和模塊都有唯一的地址,在信息的傳輸過程中,I2C匯流排上並接的每一模塊電路既是主控器(或被控器),又是發送器(或接收器),這取決於它所要完成的功能。CPU發出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調整的類別(如對比度、亮度等)及需要調整的量。這樣,各控制電路雖然掛在同一條匯流排上,卻彼此獨立,互不相關。 I2C匯流排在傳送數據過程 *** 有三種類型信號, 它們分別是:開始信號、結束信號和應答信號。 開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據。 結束信號:SCL為高電平時,SDA由低電平向高電平跳變,結束傳送數據。 應答信號:接收數據的IC在接收到8bit數據後,向發送數據的IC發出特定的低電平脈沖,表示已收到數據。CPU向受控單元發出一個信號後,等待受控單元發出一個應答信號,CPU接收到應答信號後,根據實際情況作出是否繼續傳遞信號的判斷。若未收到應答信號,由判斷為受控單元出現故障。 這些信號中,起始信號是必需的,結束信號和應答信號,都可以不要。
進位制/位置計數法是一種記數方式,故亦稱進位記數法/位值計數法,可以用有限的數字元號代表所有的數值。可使用數字元號的數目稱為基數(en:radix)或底數,基數為n,即可稱n進位制,簡稱n進制。現在最常用的是十進制,通常使用10個阿拉伯數字0-9進行記數。
對於任何一個數,我們可以用不同的進位制來表示。比如:十進數57(10),可以用二進製表示為111001(2),也可以用五進製表示為212(5),也可以用八進製表示為71(8)、用十六進製表示為39(16),它們所代表的數值都是一樣的。
selected表示是否選中的意思,如判斷一個多選框或單選框是否選中,選中則返回true,否則返回false。
至於你說的在...之前,請粘貼完整信息,多數是指語法不對,本來該語句應該在某函數之內的,你寫在函數外了。
Gibson Lespaul Standard Doublecut。什麼顏色都有,這個型號產量最多的年份是98年和05年。但是這個琴的卷弦器修改過,出廠的應該是電鍍Grover半圓形的。面板是AAA的楓木板。之後還有一個型號,叫lespaul standard doublecut pro,那個是22格的。
❻ plc程序源代碼用什麼程序寫的
源程序是用STL語言寫的,可以通過梯形圖生成。打開程序塊,文件菜單下邊有一個生成源文件就可以。最常用到的使用源文件的地方就是給程序塊加密(雖然現在可以很容易破解)。
1、在STEP7中打開要加密的程序塊,點擊菜單「文件/生成源文件(File/Generate source)」,
生成要加密保護的程序塊的原代碼文件。
2、關閉程序塊,在項目管理器中打開「源文件(source)」,打開生成的源文件。
3、在程序塊的聲明部分,TITLE行下面的一行中輸入「KNOW_HOW_PROTECT」。
4、執行菜單命令「文件/保存(File/Save)」然後「文件/編譯(File/Compile)」。
5、編譯成功後,可在「塊」中看到加鎖的程序塊。
6、解除密碼,打開相應的「源文件」,把「KNOW_HOW_PROTECT」刪除,然後編譯即可。
注意,保存好源文件,否則已加密的程序塊將無法打開。
❼ c語言裡面可以用stl么
不可以。
STL即Standard Template Library,也就是標准模板庫。是針對C++語言進行開發的,裡面使用了重載,模板等等技術。
這些技術都是C++所特有的,C語言並不支持。
所以在C語言中無法使用STL。
當C語言編程中需要類似功能時,可以自行實現類似的,C語言可用的函數介面。