關於OPC的相關內容以后再說,我又給自己挖了個坑,,,,,
關於S7和Simulink的連接可以看我CSDN的Matlab的更新,,,,過幾天就寫,,,
想學C#的可以百度個教程,當然這個篇教程只是配置與介紹,,具體應用后面慢慢更。
具體介紹內容看以下這篇博客:
http://gmiru.com/article/s7comm/
西門子通信場景
西門子設備使用多種不同現場總線協議,例如:MPI、Profibus、IE 、Profinet 等。Profinet用於將PLC連接到IO模塊,而不是設備的管理協議。S7以太網通信協議,主要用於將PLC連接到(i)pc站(PG/PC - PLC 通信)。大多數情況下,西門子通信遵循傳統的主從模式(master-slave)或者CS模式(client-server )。其中PC(master/client)將S7請求發送到現場設備(slave/server)。這些請求用於從設備查詢或向設備發送數據或發出某些命令。當PCL作為通信主站時(master)有一些例外,通過FB14/FB15設備可以向其他設備發起GET和PUT請求。在S400系列中,實現了所謂的循環數據I/O功能,這類似於傳統的發布者 - 訂閱模型。PC可以訂閱某些事件,而不是PLC 定期推送所請求的數據送到網絡。還有一個合作伙伴(Partner )或點對點模型,當一個活動的合作伙伴請求連接並調用阻止發送(Block Send),與此同時被動合作伙伴調用阻止接收(Block Receive)方法。
簡言之,西門子的S7的PLC基本通訊方式有兩種第一種是:開放式的TCP\IP,可以用於連接PLC與其他非西門子硬件,第二種是西門子自己開發的S7 Protocol以太網通訊協議,用於西門子內部硬件通訊,這兩者的傳輸報文是不一樣的,如下圖(引子官方):
PLC數存儲到二進制時方式是大端模式(BIG-Endian),而普通電腦端常常為小端模式(Liitle-Endian)。大端模式是指數據的低位保存在內存的高地址中,而數據的高位保存在內存的低地址中, 小端模式是指數據的低位保存在內存的低地址中,而數據的高位保存在內存的高地址中。
幾種常用通信庫的對比介紹:
通信庫 |
是否收費 |
拓展性 |
備注 |
|
1 |
Prodave |
是 |
加密性高但是應用性並不高, 對S7系列的PLC兼容性極高, 對其他PLC的兼容性不好 |
西門子的版權方,目前依舊應用 |
2 |
S7.Net |
否 |
可以個人開發使用,兼容性好, 支持性高 |
目前停止更新,在GIT上有相關源碼 |
3 |
S7.NetPlus |
否 |
應用性極高,支持多種語言,對C#支持良好 |
S7.Net的升級版本 |
4 |
Sharp7 |
否 |
Snap7的C#實現,調用簡單 |
在GIT上有相關源碼 |
5 |
Snap7 |
否 |
應用性極高,支持多種語言,兼容多系統,幾乎適用於所有常見系統和硬件,包括樹莓派,Jetson,甚至可以在F767上進行搭載。 |
在GIT上有相關源碼 |