回复:求教:麒麟操作系统,连接西门子PLC有什么方案

已锁定

Young

  • 帖子

    4
  • 精华

    0
  • 被关注

    0

论坛等级:游民

注册时间:2022-12-20

普通 普通 如何晋级?

发布于 2025-02-13 10:20:55

16楼

如果是麒麟操作系统的话可以使用python的snap7包来与plc进行通讯,示例:

import snap7


DB_NUMBER = 2001

START_ADDRESS = 2

SIZE = 1


plc = snap7.client.Client()

plc.connect('192.168.0.23',0,0)


plc_connected = plc.get_connected()

print(f'PLC 连接状态: {plc_connected}')


plc_info = plc.get_cpu_info()

print(f'全部信息: {plc_info}')

ModuleTypeName = plc_info.ModuleTypeName.decode('utf-8')

print(f'PLC 类型: {ModuleTypeName}')

ModuleName = plc_info.ModuleName.decode('utf-8')

print(f'PLC 名称: {ModuleName}')


state = plc.get_cpu_state()

print(f'PLC CPU状态:{state}')


# 读取 DB2001.DBX2.0 的值

buffer = plc.read_area(snap7.types.Areas.DB, DB_NUMBER, START_ADDRESS, SIZE)

print(buffer)

# 将字节数组转换为布尔值

bool_value = snap7.util.get_bool(buffer, 0, 0) # 数据, 读取字节索引, 读取位索引

# 数据类型 real 在 PLC 中以 4 个字节表示

# real_value = snap7.util.get_real(buffer, 0) # 数据, 读取字节索引

# PLC 中的数据类型 int 用两个字节表示

# int_value = snap7.util.get_int(buffer, 0) # 数据, 读取字节索引

# 缓冲区的第一个字节将包含字符串可能的最大大小。 第二个字节包含包含的字符串的长度。

# str_value = snap7.util.get_string(buffer, 0) # 数据, 读取字节索引

print(bool_value)


plc.disconnect()  # 断开连接

plc.destroy()  # 销毁


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11076条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。