99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

教程-西門(mén)子S7協(xié)議轉(zhuǎn)換為HTTP協(xié)議

IOTRouter ? 來(lái)源:IOTRouter ? 作者:IOTRouter ? 2024-10-12 16:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

需求概述

本章要實(shí)現(xiàn)一個(gè)流程:EG8200采集西門(mén)子S7-200Smart的數(shù)據(jù),并組裝成JSON格式通過(guò)HTTP上報(bào)應(yīng)用平臺(tái)。

源-(S7轉(zhuǎn)Modbus-https://www.iotrouter.com/news/2150.html)

要采集的PLC點(diǎn)位表如下:

PLC S7-200 Smart
IP 192.168.0.34/102
點(diǎn)表(DB1)
地址 數(shù)據(jù)類(lèi)型 屬性 名稱(chēng)
V0.0 Boolean 只讀 風(fēng)機(jī)1接觸器異常
V0.6 Boolean 只讀 風(fēng)機(jī)2接觸器異常
V1.6 Boolean 只讀 風(fēng)機(jī)3接觸器異常
V2.5 Boolean 只讀 變頻器通訊故障
I0.0 Boolean 只讀 電機(jī)高溫報(bào)警
I0.1 Boolean 只讀 溫度狀態(tài)異常
VD4 Float 只讀 油壓工程值
VD8 Float 只讀 吸入壓力工程值
VD12 Float 只讀 燃油油位工程值
VD16 Float 只讀 機(jī)柜溫度值
VD20 Float 只讀 發(fā)動(dòng)機(jī)電壓值
VD24 Float 只讀 發(fā)動(dòng)機(jī)電流值
VD28 Float 只讀 發(fā)動(dòng)機(jī)工作時(shí)間
VD32 Float 只讀 泵壓工程值
VW120 Unsigned16 只讀 本機(jī)編號(hào)
VW750 Unsigned16 只讀 本機(jī)組號(hào)
VW2402 Unsigned16 只讀 電機(jī)1溫度
VW2404 Unsigned16 只讀 電機(jī)2溫度
VW2406 Unsigned16 只讀 電機(jī)3溫度
VW2408 Unsigned16 只讀 風(fēng)機(jī)1溫度
VW2410 Unsigned16 只讀 風(fēng)機(jī)2溫度
VW2412 Unsigned16 只讀 風(fēng)機(jī)3溫度

HTTP通信相關(guān)參數(shù)格式如下:

##數(shù)據(jù)推送
url:192.168.0.32:1880/api/device/reportData
method:POST

JSON格式:
{
  "deviceInfo": {
    "machineNumber": 9301,
    "machineGroupNumber": 1
  },
  "status": {
    "fan1ContactError": true,
    "fan2ContactError": false,
    "fan3ContactError": false,
    "inverterCommError": false,
    "motorHighTempAlarm": false,
    "temperatureStatusError": false
  },
  "data": {
    "oilPressure": 17.83,
    "suctionPressure": 3.7,
    "fuelLevel": 0.23,
    "cabinetTemperature": 237.2,
    "engineVoltage": 415.64,
    "engineCurrent": 65.1,
    "engineRuntime": 72.6,
    "pumpPressure": 85.3,
    "motor1Temperature": 20,
    "motor2Temperature": 19,
    "motor3Temperature": 19,
    "fan1Temperature": 21,
    "fan2Temperature": 33,
    "fan3Temperature": 26
  },
  "timestamp": "2022-7-08 11:28:55"
}

需求分析

在制作流程時(shí),基礎(chǔ)的邏輯是根據(jù)數(shù)據(jù)走向來(lái)制作流程。其中主要工作分為三步:

第一步:通過(guò)S7協(xié)議讀取PLC變量數(shù)據(jù),得到的數(shù)據(jù)存儲(chǔ)在內(nèi)存中(西門(mén)子節(jié)點(diǎn))

第二步:將數(shù)據(jù)按照J(rèn)SON格式進(jìn)行格式化(函數(shù)節(jié)點(diǎn))

第三步:配置HTTP 請(qǐng)求參數(shù)

wKgZoWcKMT2AIXGSAAAUBcZlQlY587.png

需求實(shí)現(xiàn)

1. 采集PLC數(shù)據(jù)

從節(jié)點(diǎn)庫(kù)拖入一個(gè)西門(mén)子節(jié)點(diǎn),以及一個(gè)調(diào)試節(jié)點(diǎn),調(diào)試節(jié)點(diǎn)用于查看讀取到的PLC數(shù)據(jù)集,方便定位問(wèn)

wKgZombDBMSAXaAwAAzV2crvgmE057.png

雙擊西門(mén)子節(jié)點(diǎn),根據(jù)需求概述的內(nèi)容填寫(xiě)對(duì)應(yīng)的設(shè)置參數(shù),如下圖所示:

IP:PLC的IP
端口:102(S7協(xié)議通信默認(rèn)端口102)
采集周期:1000ms(默認(rèn)2000ms,可自定義)
超時(shí)周期:2000ms(默認(rèn)2000ms,可自定義)

數(shù)據(jù)點(diǎn)配置(根據(jù)幫助文檔可以找到對(duì)應(yīng)關(guān)系)
V0.0
V0.6
V1.6
V2.5
I0.0
I0.1
VD4
VD8
VD12
VD16
VD20
VD24
VD28
VD32
VW120
VW750
VW2402
VW2404
VW2408
VW2410
VW2412

如果是連續(xù)地址,可配置起始地址并填寫(xiě)讀取長(zhǎng)度即可

如果設(shè)置正確,調(diào)試窗口會(huì)有日志打印,顯示的是讀取到的數(shù)據(jù)內(nèi)容:

wKgaombDBV6AGjboAAz30bMjHmA001.png

有的時(shí)候PLC數(shù)據(jù)點(diǎn)比較多,手動(dòng)依次錄入比較繁瑣。節(jié)點(diǎn)支持?jǐn)?shù)據(jù)點(diǎn)的導(dǎo)入導(dǎo)出或者參數(shù)傳遞的方式來(lái)讀?。?/p>

wKgZoWcKMZWAemq1ABG6MpMXYKA822.png

本例程用到的傳參方案,函數(shù)節(jié)點(diǎn)內(nèi)的代碼如下:

msg.payload = [
    { func: "ReadBoolArray", body: { name: "", address: "V0", length: 8 } },
    { func: "ReadBoolArray", body: { name: "", address: "V1", length: 8 } },
    { func: "ReadBoolArray", body: { name: "", address: "V2", length: 8 } },
    { func: "ReadFloatArray", body: { name: "", address: "VD4", length: 8 } },
    { func: "ReadUInt16", body: { name: "", address: "VW120" } },
    { func: "ReadUInt16", body: { name: "", address: "VW750" } },
    { func: "ReadUInt16Array", body: { name: "", address: "VW2402", length: 6 } },
    { func: "ReadBoolArray", body: { name: "", address: "I0", length: 8 } }
]
return msg;

2. 數(shù)據(jù)格式化

根據(jù)步驟引導(dǎo),在調(diào)試窗口可以看到讀到的PLC數(shù)據(jù)如下:

wKgZoWcKMbSABcQeAAGpKSe5_oI754.png

因?yàn)閼?yīng)用平臺(tái)已經(jīng)規(guī)定了數(shù)據(jù)必須按照J(rèn)SON格式上報(bào)。接下來(lái)使用函數(shù)節(jié)點(diǎn)Javascrip代碼將數(shù)據(jù)進(jìn)行格式化,代碼如下:

class DeviceReport {
    constructor(machineNumber, machineGroupNumber) {
        this.deviceInfo = {
            machineNumber: machineNumber,
            machineGroupNumber: machineGroupNumber
        };
        this.status = {
            fan1ContactError: 0,
            fan2ContactError: 0,
            fan3ContactError: 0,
            inverterCommError: 0,
            motorHighTempAlarm: 0,
            temperatureStatusError: 0
        };
        this.data = {
            oilPressure: 0,
            suctionPressure: 0,
            fuelLevel: 0,
            cabinetTemperature: 0,
            engineVoltage: 0,
            engineCurrent: 0,
            engineRuntime: 0,
            pumpPressure: 0,
            motor1Temperature: 0,
            motor2Temperature: 0,
            motor3Temperature: 0,
            fan1Temperature: 0,
            fan2Temperature: 0,
            fan3Temperature: 0
        };
        this.timestamp = null;
    }

    // 設(shè)置狀態(tài)數(shù)據(jù)(1表示異常,0表示正常)
    setStatusData(statusData) {
        this.status = statusData;
    }

    // 設(shè)置傳感器數(shù)據(jù)
    setSensorData(sensorData) {
        this.data = sensorData;
    }

    // 設(shè)置時(shí)間戳
    setTimestamp(timestamp) {
        this.timestamp = timestamp;
    }
    generateReport() {
        return {
            deviceInfo: this.deviceInfo,
            status: this.status,
            data: this.data,
            timestamp: this.timestamp
        };
    }
}

function dateFormat(fmt, timestamp) {
    let ret;
    const opt = {
        "Y+": timestamp.getFullYear().toString(), // 年
        "m+": (timestamp.getMonth() + 1).toString(),  // 月
        "d+": timestamp.getDate().toString(), // 日
        "H+": timestamp.getHours().toString(), // 時(shí)
        "M+": timestamp.getMinutes().toString(), // 分
        "S+": timestamp.getSeconds().toString() // 秒
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}
function setValue(data) {
    var myDeviceReport = new DeviceReport(data.VW120, data.VW750)
    var v0 = data.V0
    var v1 = data.V1
    var v2 = data.V2
    var i0 = data.I0
    var vd4 = data.VD4
    var vd2402 = data.VW2402
    const fmt = dateFormat("YYYY-mm-dd HH:MM:SS", new Date())
    try {
        // 設(shè)置狀態(tài)數(shù)據(jù)
        const statusData = {
            fan1ContactError: v0[0],
            fan2ContactError: v0[6],
            fan3ContactError: v1[6],
            inverterCommError: v2[5],
            motorHighTempAlarm: i0[0],
            temperatureStatusError: i0[1]
        }
        myDeviceReport.setStatusData(statusData)

        // 設(shè)置傳感器數(shù)據(jù)
        const sensorData = {
            oilPressure: vd4[0],
            suctionPressure: vd4[1],
            fuelLevel: vd4[2],
            cabinetTemperature: vd4[3],
            engineVoltage: vd4[4],
            engineCurrent: vd4[5],
            engineRuntime: vd4[6],
            pumpPressure: vd4[7],
            motor1Temperature: vd2402[0],
            motor2Temperature: vd2402[1],
            motor3Temperature: vd2402[2],
            fan1Temperature: vd2402[3],
            fan2Temperature: vd2402[4],
            fan3Temperature: vd2402[5]
        }
        myDeviceReport.setSensorData(sensorData)
        // 設(shè)置時(shí)間戳
        myDeviceReport.setTimestamp(fmt)
        //生成JSON對(duì)象返回
        return myDeviceReport.generateReport()
    } catch (err) {
        node.error(err.message);
        return null
    }

}
var plcData = msg.payload
if (setValue(plcData)){
    msg.payload = JSON.stringify(setValue(plcData),null,2)
    return msg
}

復(fù)制以上代碼,粘貼到函數(shù)節(jié)點(diǎn)內(nèi),部署后即可看到效果:

wKgaoWcKMciAHmhAABAECOnz8Go273.png

可以看到,已經(jīng)將讀到的PLC數(shù)據(jù),按照需求要求轉(zhuǎn)換成了最終的JSON格式,且對(duì)數(shù)據(jù)進(jìn)行了一定程度的計(jì)算(兩位小數(shù))。此處只是函數(shù)節(jié)點(diǎn)的冰山一角,因?yàn)橹С諮avascrip語(yǔ)言編程,幾乎你能想到的任何功能都可以在這里實(shí)現(xiàn)。

3. 通過(guò)http周期上報(bào)

拖入一個(gè)HTTP節(jié)點(diǎn),根據(jù)提示進(jìn)行配置地址和請(qǐng)求方式,即可實(shí)現(xiàn)數(shù)據(jù)上報(bào):

wKgaoWcKMdOAaHycAA5n4n7XdF0777.png

服務(wù)端返回成功,至此,數(shù)據(jù)上報(bào)已經(jīng)完成,很簡(jiǎn)單幾步即可實(shí)現(xiàn):采集PLC數(shù)據(jù)并按照自定義JSON格式上報(bào)。

源碼

所有的流程支持以json格式導(dǎo)入導(dǎo)出,方便與其他人分享做好的流程。本章節(jié)的流程json文件如下,復(fù)制后在菜單欄右上角選擇導(dǎo)入粘貼即可,導(dǎo)出同理

[{"id":"edf0c4c538469caa","type":"Siemens","z":"5bb1b94e3403e2f2","name":"","protocol":"iplink_SiemensS7","IPAddress":"192.168.0.34","DestPort":"102","IPLinkTimeout":"2000","IPCommTimeout":"2000","Spname":"COM10","Baudrate":"9600","Databits":"8","Stopbit":"1","Paritybit":"0","RTSEnable":false,"SpLinktimeout":"2000","SpIntertimeout":"-1","workMode":"read","readMode":"trigger","readCyc":"1000","vartable":[],"SiemensS7Model":"5","SiemensS7ConnectionType":"1","SiemensS7Rack":"0","SiemensS7Slot":"0","SiemensS7LocalTSAP":"102","SiemensS7DestTSAP":"4D57","SiemensPPIStation":"2","stringvar":[],"customName":"Siemens:S7-S200Smart","x":510,"y":1080,"wires":[["be890e0383a04306"]]},{"id":"90be80aa485c48ae","type":"debug","z":"5bb1b94e3403e2f2","name":"調(diào)試 22","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1020,"y":1080,"wires":[]},{"id":"2485d94e74e61614","type":"function","z":"5bb1b94e3403e2f2","name":"函數(shù)計(jì)算 18","func":"msg.payload = [n    { func: "ReadBoolArray", body: { name: "", address: "V0", length: 8 } },n    { func: "ReadBoolArray", body: { name: "", address: "V1", length: 8 } },n    { func: "ReadBoolArray", body: { name: "", address: "V2", length: 8 } },n    { func: "ReadFloatArray", body: { name: "", address: "VD4", length: 8 } },n    { func: "ReadUInt16", body: { name: "", address: "VW120" } },n    { func: "ReadUInt16", body: { name: "", address: "VW750" } },n    { func: "ReadUInt16Array", body: { name: "", address: "VW2402", length: 6 } },n    { func: "ReadBoolArray", body: { name: "", address: "I0", length: 8 } }n]nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":310,"y":1080,"wires":[["edf0c4c538469caa"]]},{"id":"8db3c718ecac3ed7","type":"inject","z":"5bb1b94e3403e2f2","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":1080,"wires":[["2485d94e74e61614"]]},{"id":"be890e0383a04306","type":"function","z":"5bb1b94e3403e2f2","name":"函數(shù)計(jì)算 19","func":"class DeviceReport {n    constructor(machineNumber, machineGroupNumber) {n        this.deviceInfo = {n            machineNumber: machineNumber,n            machineGroupNumber: machineGroupNumbern        };n        this.status = {n            fan1ContactError: 0,n            fan2ContactError: 0,n            fan3ContactError: 0,n            inverterCommError: 0,n            motorHighTempAlarm: 0,n            temperatureStatusError: 0n        };n        this.data = {n            oilPressure: 0,n            suctionPressure: 0,n            fuelLevel: 0,n            cabinetTemperature: 0,n            engineVoltage: 0,n            engineCurrent: 0,n            engineRuntime: 0,n            pumpPressure: 0,n            motor1Temperature: 0,n            motor2Temperature: 0,n            motor3Temperature: 0,n            fan1Temperature: 0,n            fan2Temperature: 0,n            fan3Temperature: 0n        };n        this.timestamp = null;n    }nn    // 設(shè)置狀態(tài)數(shù)據(jù)(1表示異常,0表示正常)n    setStatusData(statusData) {n        this.status = statusData;n    }nn    // 設(shè)置傳感器數(shù)據(jù)n    setSensorData(sensorData) {n        this.data = sensorData;n    }nn    // 設(shè)置時(shí)間戳n    setTimestamp(timestamp) {n        this.timestamp = timestamp;n    }n    generateReport() {n        return {n            deviceInfo: this.deviceInfo,n            status: this.status,n            data: this.data,n            timestamp: this.timestampn        };n    }n}nnfunction dateFormat(fmt, timestamp) {n    let ret;n    const opt = {n        "Y+": timestamp.getFullYear().toString(), // 年n        "m+": (timestamp.getMonth() + 1).toString(),  // 月n        "d+": timestamp.getDate().toString(), // 日n        "H+": timestamp.getHours().toString(), // 時(shí)n        "M+": timestamp.getMinutes().toString(), // 分n        "S+": timestamp.getSeconds().toString() // 秒n    };n    for (let k in opt) {n        ret = new RegExp("(" + k + ")").exec(fmt);n        if (ret) {n            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))n        };n    };n    return fmt;n}nfunction setValue(data) {n    var myDeviceReport = new DeviceReport(data.VW120, data.VW750)n    var v0 = data.V0n    var v1 = data.V1n    var v2 = data.V2n    var i0 = data.I0n    var vd4 = data.VD4n    var vd2402 = data.VW2402n    const fmt = dateFormat("YYYY-mm-dd HH:MM:SS", new Date())n    try {n        // 設(shè)置狀態(tài)數(shù)據(jù)n        const statusData = {n            fan1ContactError: v0[0],n            fan2ContactError: v0[6],n            fan3ContactError: v1[6],n            inverterCommError: v2[5],n            motorHighTempAlarm: i0[0],n            temperatureStatusError: i0[1]n        }n        myDeviceReport.setStatusData(statusData)nn        // 設(shè)置傳感器數(shù)據(jù)n        const sensorData = {n            oilPressure: vd4[0],n            suctionPressure: vd4[1],n            fuelLevel: vd4[2],n            cabinetTemperature: vd4[3],n            engineVoltage: vd4[4],n            engineCurrent: vd4[5],n            engineRuntime: vd4[6],n            pumpPressure: vd4[7],n            motor1Temperature: vd2402[0],n            motor2Temperature: vd2402[1],n            motor3Temperature: vd2402[2],n            fan1Temperature: vd2402[3],n            fan2Temperature: vd2402[4],n            fan3Temperature: vd2402[5]n        }n        myDeviceReport.setSensorData(sensorData)n        // 設(shè)置時(shí)間戳n        myDeviceReport.setTimestamp(fmt)n        //生成JSON對(duì)象返回n        return myDeviceReport.generateReport()n    } catch (err) {n        node.error(err.message);n        return nulln    }nn}nvar plcData = msg.payloadnif (setValue(plcData)) {n    msg.payload = JSON.stringify(setValue(plcData), null, 2)n    return msgn}n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":710,"y":1080,"wires":[["d140dc012c0cd68f"]]},{"id":"d140dc012c0cd68f","type":"http request","z":"5bb1b94e3403e2f2","name":"","method":"POST","ret":"txt","paytoqs":"ignore","url":"192.168.0.32:1880/api/device/reportData","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":860,"y":1080,"wires":[["90be80aa485c48ae"]]}]


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 西門(mén)子
    +關(guān)注

    關(guān)注

    98

    文章

    3174

    瀏覽量

    118305
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    33550
  • 邊緣計(jì)算
    +關(guān)注

    關(guān)注

    22

    文章

    3327

    瀏覽量

    50950
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    西門(mén)子PLC(S7-1200/1500/300/400)的數(shù)據(jù)采集與監(jiān)控方案

    西門(mén)子PLC S7-1200、S7-1500、S7-300/400型號(hào)設(shè)備,常用協(xié)議:PPI(Process Communication I
    的頭像 發(fā)表于 07-04 10:13 ?261次閱讀

    CANopen轉(zhuǎn)PROFINET網(wǎng)關(guān):西門(mén)子S7-1200 PLC與歐姆龍NJ系列PLC通信方案

    進(jìn)行通信,而另一部分則依賴(lài) CANopen協(xié)議 。為實(shí)現(xiàn)不同協(xié)議設(shè)備之間的無(wú)縫通信與協(xié)同工作,引入高效可靠的 協(xié)議轉(zhuǎn)換網(wǎng)關(guān) 成為當(dāng)務(wù)之急。 二、設(shè)備選型 1.?ROFINET
    的頭像 發(fā)表于 06-12 15:25 ?282次閱讀
    CANopen轉(zhuǎn)PROFINET網(wǎng)關(guān):<b class='flag-5'>西門(mén)子</b><b class='flag-5'>S7</b>-1200 PLC與歐姆龍NJ系列PLC通信方案

    如何破解三菱PLC與西門(mén)子PLC的通訊難題

    在工業(yè)自動(dòng)化領(lǐng)域,不同品牌PLC之間的通訊一直是工程師們關(guān)注的焦點(diǎn)。三菱PLC與西門(mén)子PLC作為市場(chǎng)主流設(shè)備,常因協(xié)議差異導(dǎo)致數(shù)據(jù)交互困難。當(dāng)現(xiàn)場(chǎng)需要將三菱FX系列PLC通過(guò)485接口與西門(mén)子
    的頭像 發(fā)表于 06-09 17:14 ?330次閱讀
    如何破解三菱PLC與<b class='flag-5'>西門(mén)子</b>PLC的通訊難題

    工業(yè)智能網(wǎng)關(guān)可以采集西門(mén)子PLC嗎

    、臺(tái)達(dá)等。 具體而言,工業(yè)智能網(wǎng)關(guān)采集西門(mén)子PLC數(shù)據(jù)的過(guò)程如下: 連接方式:通過(guò)串口或網(wǎng)口將工業(yè)智能網(wǎng)關(guān)與西門(mén)子PLC連接,并確保兩者處于同一網(wǎng)段內(nèi)。 協(xié)議支持:物通博聯(lián)工業(yè)智能網(wǎng)關(guān)支持多種通信
    的頭像 發(fā)表于 05-26 09:14 ?259次閱讀

    西門(mén)子S7 PLC通過(guò)深控技術(shù)無(wú)點(diǎn)表工業(yè)網(wǎng)關(guān)實(shí)現(xiàn)數(shù)據(jù)采集與智能決策方案

    深控技術(shù)“不需要點(diǎn)表的工業(yè)數(shù)采網(wǎng)關(guān)”針對(duì)西門(mén)子S7系列PLC(包括S7-300、S7-400、S7-1200、
    的頭像 發(fā)表于 05-23 10:44 ?250次閱讀

    MCGS觸摸屏與西門(mén)子S7系列PLC以太網(wǎng)通信

    隨著計(jì)算機(jī)控制技術(shù)的不斷發(fā)展,可編輯邏輯控制 器的應(yīng)用也在不斷普及,成為自動(dòng)化技術(shù)的重要組成, 其中西門(mén)子 S7 系列的 PLC 在我國(guó)工業(yè)控制中也占有了很 大的比重。觸摸屏作為一種直觀、方便的人
    的頭像 發(fā)表于 03-20 14:19 ?1439次閱讀
    MCGS觸摸屏與<b class='flag-5'>西門(mén)子</b><b class='flag-5'>S7</b>系列PLC以太網(wǎng)通信

    Profinet轉(zhuǎn)EtherCAT深度解讀網(wǎng)關(guān)模塊如何協(xié)議轉(zhuǎn)換賦能西門(mén)子PLC與伺服驅(qū)動(dòng)高效協(xié)作案例?

    的其它設(shè)備或連接到ProfiNetPLC上,并在正常運(yùn)行中支持EtherCAT協(xié)議。本產(chǎn)品可作為EtherCAT主站,做為西門(mén)子S7-1200系列PLC的從站并在監(jiān)控系統(tǒng)中支持PROFINET
    的頭像 發(fā)表于 03-14 10:58 ?349次閱讀
    Profinet轉(zhuǎn)EtherCAT深度解讀網(wǎng)關(guān)模塊如何<b class='flag-5'>協(xié)議</b><b class='flag-5'>轉(zhuǎn)換</b>賦能<b class='flag-5'>西門(mén)子</b>PLC與伺服驅(qū)動(dòng)高效協(xié)作案例?

    西門(mén)子S7-200SMART與WINCC如何通信?老工控人這樣做!

    :RJ45接口 供電:12-24VDC 通訊協(xié)議:ModbusTCP/IP協(xié)議 傳輸距離:100米,1KM 本方案以WinCC和2臺(tái)西門(mén)子S7-200SMART PLC為例,在Modb
    的頭像 發(fā)表于 02-25 10:06 ?1220次閱讀
    <b class='flag-5'>西門(mén)子</b><b class='flag-5'>S7</b>-200SMART與WINCC如何通信?老工控人這樣做!

    西門(mén)子PLC S7-1500系列介紹

    西門(mén)子PLCS7-1500系列是西門(mén)子自動(dòng)化領(lǐng)域中的一款重要產(chǎn)品,它以其卓越的性能、強(qiáng)大的功能和高度的靈活性,在工業(yè)自動(dòng)化控制系統(tǒng)中占據(jù)了一席之地。本文將詳細(xì)介紹西門(mén)子PLC
    的頭像 發(fā)表于 12-09 18:23 ?2787次閱讀
    <b class='flag-5'>西門(mén)子</b>PLC <b class='flag-5'>S7</b>-1500系列介紹

    西門(mén)子1200、200smart、LOGO實(shí)現(xiàn)S7通訊演示

    : 1、三臺(tái)實(shí)現(xiàn)S7通訊 2、任意一臺(tái)控制另外兩臺(tái)輸出QB0輸出狀態(tài) 3、任意一臺(tái)讀寫(xiě)另外兩臺(tái)的數(shù)據(jù)VB10 VB20 VB30寄存器 4、熟悉西門(mén)子S7通訊 三、通信連接說(shuō)明: 1、三臺(tái)PLC網(wǎng)線端口連接至五口路由器 2、五口
    的頭像 發(fā)表于 12-05 09:31 ?1813次閱讀
    <b class='flag-5'>西門(mén)子</b>1200、200smart、LOGO實(shí)現(xiàn)<b class='flag-5'>S7</b>通訊演示

    西門(mén)子S7協(xié)議PLC數(shù)據(jù)采集到MQTT物聯(lián)網(wǎng)平臺(tái) ?

    ,廣泛應(yīng)用于各種工業(yè)控制場(chǎng)合。而MQTT(消息隊(duì)列遙測(cè)傳輸)物聯(lián)網(wǎng)平臺(tái)則以其高效的消息傳輸機(jī)制和數(shù)據(jù)處理能力,為物聯(lián)網(wǎng)設(shè)備提供了強(qiáng)大的連接、管理和數(shù)據(jù)處理服務(wù)。 對(duì)此,物通博聯(lián)提供基于工業(yè)智能網(wǎng)關(guān)實(shí)現(xiàn)西門(mén)子S7協(xié)議PLC數(shù)據(jù)采集
    的頭像 發(fā)表于 09-26 10:42 ?754次閱讀
    <b class='flag-5'>西門(mén)子</b><b class='flag-5'>S7</b><b class='flag-5'>協(xié)議</b>PLC數(shù)據(jù)采集到MQTT物聯(lián)網(wǎng)平臺(tái)  ?

    EG網(wǎng)關(guān)采集西門(mén)子S7-200smart轉(zhuǎn)Modbus協(xié)議

    通過(guò)EG邊緣計(jì)算網(wǎng)關(guān),用戶(hù)可以輕松實(shí)現(xiàn)西門(mén)子S7-200 Smart PLC數(shù)據(jù)的采集,并將其轉(zhuǎn)換為標(biāo)準(zhǔn)Modbus協(xié)議輸出。這種跨協(xié)議的數(shù)
    的頭像 發(fā)表于 09-10 10:42 ?1182次閱讀
    EG網(wǎng)關(guān)采集<b class='flag-5'>西門(mén)子</b><b class='flag-5'>S7</b>-200smart轉(zhuǎn)Modbus<b class='flag-5'>協(xié)議</b>

    西門(mén)子 S7 通信協(xié)議大揭秘

    什么是S7協(xié)議 有網(wǎng)友說(shuō),如果 S7 是一輛汽車(chē),它可能看起來(lái)像這樣: 實(shí)際上,西門(mén)子S7協(xié)議
    的頭像 發(fā)表于 08-12 14:21 ?1796次閱讀
    <b class='flag-5'>西門(mén)子</b> <b class='flag-5'>S7</b> 通信<b class='flag-5'>協(xié)議</b>大揭秘

    基于多協(xié)議轉(zhuǎn)換工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)采集西門(mén)子PLC設(shè)備數(shù)據(jù)

    作為全球領(lǐng)先的自動(dòng)化解決方案提供商,西門(mén)子的PLC設(shè)備以其穩(wěn)定性和高效性廣受贊譽(yù)。然而,在實(shí)際應(yīng)用過(guò)程中,由于其采用的是專(zhuān)有的通信協(xié)議,與其他設(shè)備之間的互聯(lián)互通成為了一大難題。這就需要一個(gè)多協(xié)議
    的頭像 發(fā)表于 08-12 13:41 ?558次閱讀

    西門(mén)子總線協(xié)議有哪些

    西門(mén)子(Siemens)作為工業(yè)自動(dòng)化領(lǐng)域的領(lǐng)先企業(yè),其總線協(xié)議在自動(dòng)化系統(tǒng)中發(fā)揮著重要作用。西門(mén)子總線協(xié)議主要包括了多種類(lèi)型,這些協(xié)議支持
    的頭像 發(fā)表于 08-05 16:09 ?2401次閱讀