Iot2040和Iot2050 修改串口参数

本文详细介绍了如何使用IOT2040设备通过switchserialmode指令切换串口工作模式,包括RS232、RS485和RS422,并提供了设置开机启动模式的方法及Python脚本实现。

博客迁移

不恰饭的小站

IOT2040 串口表示 Linux将所有UARTs表示为ttyS,其中 x = 0, 1 对应内部设备,2, 3对应外部设备

修改指令

IOT2040 ```指令:switchserialmode

Usage: switchserialmode DEVICE [MODE [-t|–terminate]]

DEVICE The device for which you want to switch the mode. MODE
The mode you want to use: rs232, rs485, or rs422.
If omitted, the current mode will be printed.

Optional arguments: -t, --terminate Terminate the RS422 or
RS485 bus. ```例子:switchserialmode /dev/ttyS2 RS485 --terminate

IOT2050 ```指令:switchserialmode It’s used to set external serial port mode. Usage:

switchserialmode [ttyuart [options]] | [cp210x [options]] | [-m,--mode MODE]

Example:
switchserialmode ttyuart -h
switchserialmode cp210x -h
switchserialmode -m,–mode <rs232 | rs485 | rs422> [-t,–terminate]
-t,–terminate: Terminate the rs422 or rs485 bus.

指令:switchserialmode ttyuart -h

It’s to operate tty serial device.
-h,–help: display help information.
-D,–device: specified device, like ‘/dev/ttyS1’ etc.
-m,–mode mode: set serial work mode, the mode can be set ‘rs232’ or ‘rs485’ or ‘rs422’.
-l,–logic level: set RTS-pin logic level when sending in rs485 mode, logic can be set ‘0’ or ‘1’.
-d,–display: display the current mode of ttyuart

1. 查看:switchserialmode ttyuart -D /dev/ttyS2 -d
2. 设置:switchserialmode ttyuart -D /dev/ttyS2 -m RS485 -t

# 设置开机启动
## **IOT2040**
1. 创建文件:vi /etc/init.d/changetty.sh
2. chmod 755 /etc/init.d/changetty.sh
3. 修改文件 ```
#! /bin/sh
# /etc/init.d/changetty.sh

### BEGIN INIT INFO
# Provides:          changetty
# Required-Start:    
# Should-Start:
# Required-Stop:     
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: changetty
### END INIT INFO

echo '/etc/init.d/changetty.sh' switchserialmode /dev/ttyS2 RS485
--terminate exit 0


  1. 将启动脚本链接到 /ect/rcX.d
/etc/init.d/changetty.sh  /etc/rc3.d/S20changetty  ln -s
/etc/init.d/changetty.sh  /etc/rc4.d/S20changetty  ln -s
/etc/init.d/changetty.sh  /etc/rc5.d/S20changetty ```

5. 执行并替换文件 ```switchserialmode /dev/ttyS2 RS485 --terminate switchserialmode /dev/ttyS2 RS422 --terminate switchserialmode
/dev/ttyS2 RS232

sed -i s/.*switchserialmode.*/'switchserialmode \/dev\/ttyS2 RS485
--terminate'/ /etc/init.d/changetty.sh

IOT2050

  1. 在/root 目录中创建 changetty.py ```
    #! /usr/bin/python3

import sys import subprocess import json from collections import
OrderedDict

class Process:
def init(self):
self.configureFile = ‘/etc/board-configuration.json’
self.config = self.getConfig()

def getConfig(self):
    with open(self.configureFile, 'r') as f:
        config = json.load(f, object_pairs_hook=OrderedDict)
        return config

def saveConfig(self, jsonSrc):
    with open(self.configureFile, 'w') as f:
        json.dump(jsonSrc, f, indent=4, separators=(',', ': '))

def setBasicBoard(self, mode, terminateStatus):
    command = 'switchserialmode ttyuart -D /dev/ttyS2 -m ' + mode
    subprocess.call(command, shell=True)
    self.config['User_configuration']['External_Serial_Init_Mode'] = mode
    if terminateStatus == 'on' or terminateStatus == 'off':
        self.config['User_configuration']['External_Serial_Terminate'] =

terminateStatus
self.saveConfig(self.config)

def main(argv):
try:
process = Process()

    print(argv[1])  # mode
    print(argv[2])  # terminateStatus
    process.setBasicBoard(argv[1], argv[2])
except:
    pass
finally:
    print('end world')
    return ''

if name == ‘main’:
main(sys.argv) 2. 在NodeRed 中调用脚本python changetty.py RS485 ‘on’ python changetty.py RS422 ‘on’ python changetty.py RS232 ‘on’

<think>我们正在讨论的是西门子IoT2040设备(注意:用户写的是IoT2040,但引用中提到了IOT2050,可能是笔误,但根据问题我们专注于IoT2040)。用户想要下载节点配置或节点软件到该设备。 引用[1]提到IoT-Fast可以支持西门子PLC的数据采集,并且提到它支持西门子S7通讯协议,但用户的问题是关于在IoT2040设备中下载节点配置或节点软件,所以我们需要考虑如何在这个设备上安装或配置节点软件。 西门子IoT2040/2050设备是基于Linux的工业物联网网关。通常,我们可以通过以下步骤来下载安装节点软件(例如Node-RED或其他自定义节点): 1. 连接到设备的Linux系统(通过SSH或串口)。 2. 使用包管理工具(如opkg)安装软件包,或者使用npm(如果设备支持Node.js)来安装节点。 但是,根据引用[2]提到为SIMATIC IOT2050部署OPCUA服务器,我们可以推测类似的方法可能适用于IoT2040(因为两者都是同一系列产品,操作系统类似)。 具体步骤可能如下: 步骤1:确保设备连接到互联网(以便下载软件包)。 步骤2:通过SSH登录到IoT2040设备(默认用户名密码通常是root/root)。 步骤3:更新包列表:`opkg update` 步骤4:安装所需的软件。例如,如果要安装Node-RED,可以使用以下命令: opkg install node-red 或者,如果要安装其他节点,可以通过npm(如果设备已经安装了Node.js): npm install <package-name> 但是,请注意,西门子IoT2040设备使用的是Yocto Linux,因此软件包管理主要通过opkg进行。同时,西门子也提供了自己的软件仓库。 另外,引用[1]中提到的IoT-Fast平台可能也提供了适用于IoT2040的软件包?但引用中并没有明确说明,所以我们需要根据实际情况来操作。 如果用户想要下载的是西门子官方提供的节点软件,可以访问西门子的工业支持网站(如Industry Online Support)下载相应的软件包,然后通过scp或sftp上传到设备,再手动安装。 总结一下,有两种主要方式: 1. 通过设备上的包管理器(opkg)在线安装(需要设备能上网)。 2. 手动下载软件包并安装。 由于用户问题中没有明确具体是哪种节点软件,我们给出通用方法。 因此,回答如下:</think>### 如何在西门子IoT2040设备中下载节点配置或节点软件 在西门子IoT2040工业物联网网关中部署节点配置或软件,需通过以下步骤操作(基于Linux系统架构): 1. **连接设备** 通过SSH登录设备(默认IP:`192.168.200.1`,用户名/密码:`root/root`): ```bash ssh root@192.168.200.1 ``` 2. **安装依赖环境** 更新软件源并安装Node.js运行环境(以Node-RED为例): ```bash opkg update opkg install nodejs npm npm install -g node-red ``` 3. **部署节点配置** - **方法1:直接安装** 使用`npm`安装特定节点(如OPC UA节点): ```bash npm install node-red-contrib-opcua ``` - **方法2:导入配置** 将预配置的`flows.json`文件通过SCP上传: ```bash scp flows.json root@192.168.200.1:/root/.node-red/ ``` 4. **启动服务** 运行Node-RED并设置开机自启: ```bash node-red-pi --max-old-space-size=256 systemctl enable node-red ``` 5. **验证部署** 访问Web界面:`http://<设备IP>:1880`,检查节点是否成功加载。 > ⚠️ **注意事项** > - 若需处理异步数据(如OPC UA订阅),需在规则引擎中配置**时间窗口同步**(如5秒内到达的数据视为同一批次)[^3] > - 工业协议支持需确认兼容性(如Modbus TCP、S7通信等)[^1] > - 建议通过**容器化部署**(Docker)隔离应用环境 --- ### 相关问题 1. IoT2040如何通过OPC UA协议采集三菱CNC设备的数据? 2. 在订阅模式下,IoT2040如何处理异步到达的多批次传感器数据? 3. 如何为西门子IoT2040开发自定义工业协议驱动? [^1]: IoT-Fast支持西门子S7协议的低代码集成方案 [^2]: SIMATIC IOT设备部署OPCUA服务器的实践案例 [^3]: 订阅模式下异步数据的批次处理策略
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值