问题标签 [s7-1200]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
819 浏览

plc - Micromaster 440. 在运行时限制输出频率的方法?

我需要使用 SFC14/15 从 PC 程序控制传送带(由Micromaster 440驱动)。该方案将是:Supervisors PC ->(ethernet)-> S7-1200 ->(profibus)-> Micromaster 440。目前,Micromaster 的输出频率由“现场”操作员通过电位计(模拟输入)控制。问题是有时操作员会提高传送带速度以更快地完成工作,这会对生产产生负面影响。“主管”希望能够使用 PC 程序限制输出频率。

当然,我看过 MM440 参数列表并且知道P1082,但我发现,不幸的是,我发现 MM440 应该在 P1082 的新值生效之前停止。在我的情况下,最好能够在运行时更改值。幸运的是,看起来P0757 - P0760 - (输入缩放)可以在运行中更改,但是这个参数有符号“首先确认”,这意味着

在更改生效之前,必须按下操作面板(BOP 或 AOP)上的“P”按钮。

但是 MM440 只有一个插槽用于 Profibus/BOP/AOP 面板,我将使用 Profibus。那么,在这种情况下,mm440 的行为会是怎样的呢?我想相信,也许,在使用 profibus 面板时,这个条件不是强制性的......

0 投票
2 回答
6781 浏览

c# - C# and PLC (S7-1200) Data Block Reading Error 33028

I am working on the connection between C# and a Siemens PLC (S7-1200). I've created a datablock (a.k.a. database) to which I need to read and eventually write. The connection to the PLC works, but I can't read anything from its datablock. It always give me the following error:

Error 33028 context is not supported. Step7 says: Function not implemented or error in telegram.

The number of the datablock is 311. I am starting at the first byte and I've only given up 1 as length.

I've also disabled Optimize block access, enabling does not solve this problem.

I hope somebody can help me out with the problem.

0 投票
1 回答
1514 浏览

plc - 西门子 S7-1200。TRCV_С。错误代码:893A;事件 ID 02:253A

请帮助解决 PC 和 1211C 之间建立通信的问题(6ES7-211-1BD30-0XB0 固件:V 2.0.2)。我觉得我在某个地方犯了一个愚蠢的错误,但无法弄清楚它到底在哪里。所以,我正在使用函数 TRCV_С ...

配置似乎没问题:

在此处输入图像描述

当我设置 CONT=1 时,连接建立没有任何问题......

在此处输入图像描述

但是,当我设置 EN_R=1 时,我得到“错误 893A ”。

在此处输入图像描述

这就是我的诊断缓冲区中的内容:(DB9 - 是应该写入接收到的数据的块)

在此处输入图像描述

手册中有对“ 893A ”的解释:参数包含未加载的DB编号。在诊断中。缓冲区还写了未加载DB9。但就我而言,它已加载!那么在这种情况下我应该怎么做呢?

0 投票
4 回答
1584 浏览

csv - make a dynamic chart on a plc

I'm searching for a way to make a graph on a user web page on a plc with data from the plc (datablocks or log files). The log files can be converted to CSV files.

I get data per our and day from the plc and want to put this into a dynamic chart.

What I want is that when there is new data from the plc, the graph should automatically change.

The plc is a siemens S7-1200.

0 投票
1 回答
691 浏览

plc - 西门子 S7-1200 PLC LED DI/DO 历史

有没有办法查看 Siemens S7-1200 PLC 的数字输入/数字输出 LED 灯历史?

如果是这样,是通过门户网站还是通过 Simatic,有人可以指出我在哪里可以找到此类信息的方向吗?

谢谢-如果可能的话,将以任何方式为我节省一次现场访问。

0 投票
1 回答
4631 浏览

arduino - 西门子 PLC 和 Arduino 之间的串行通信

我想使用带有 CM 1241 (RS-232) 的 Siemens S7-1200 进行串行通信,并与我的 Arduino 进行通信。这是通信的设置。我有 2 个温度传感器和一个连接到我的 Arduino 的 Led,在 PLC 端我有 Siemens 的 S7-1200 和 CM-1241。Arduino 和我的 PLC 仅通过使用 Tx 和 Rx 引脚连接,无需握手。

我正在将两个传感器的温度数据发送到 PLC。在 PLC 方面,我根据不同的温度值决定何时打开连接到我的 arduino 的 LED。在发送数据之前,我已经为两个传感器分配了一个 ID。这就是从 Arduino 传输的数据看起来像 $AOPT_TEMP1_20_TEMP2_21 的样子。

到目前为止它很好,我正在使用 RCV_PTP 在我的 PLC 上接收串行数据(接收到的数据放在缓冲区上)并使用 SEND_PTP 发送数据。我还在 PLC 上实现了一个过滤器,它只接受以“$AOPT_”开头的串行数据。现在,我想从两个温度传感器 TEMP1 和 TEMP2 接收温度值,然后控制 LED。例如,如果 (TEMP1>TEMP2 ) 然后打开 LED,否则关闭。

我能够从 Arduino 接收 PLC 上的数据,但现在我不知道如何继续比较接收到的信息。如何从接收的缓冲区中提取唯一需要的数据?任何建议将不胜感激。

提前致谢....

0 投票
3 回答
1355 浏览

c# - writeBytes 使用 LibNoDave 返回 -1025

我从 C# 到我的 Simatic S7-1200 的连接有一个奇怪的问题。我正在使用 LibNoDave 进行连接,并且我想使用 C# 程序设置我的 SPS 位。这工作得很好,但它只工作 9 次,然后 writeBytes(..) 函数返回 -1025 而不是它应该返回的 0,它不再设置字节。然后我必须重新启动应用程序,它会再次工作 9 次。

这是我的 LibNoDave 课程。

我在这里调用函数:

0 投票
4 回答
15617 浏览

python - python snap7 windows - 找不到 snap7 库

我尝试使用它的 python-snap7 0.4 包装器安装 snap7(从 S7-1200 读取),但我总是使用以下简单代码进行回溯。

追溯:

我安装 snap7 和 python 包装器的步骤是:

  1. 从 sourceforge 下载 snap7 并将 snap7.dll 和 snap7.lib 复制到 windows 8 的 system32 文件夹
  2. 使用 pip install python-snap7 安装包装器

如何在 Windows 上正确安装 snap7?

[pip 安装日志][1]

0 投票
1 回答
3905 浏览

c++-cli - Snap7 写入 S7-1200 PLC

我正在尝试使用 C++/CLI 应用程序向我的 Siemens PLC编写一些东西。

读取是好的(除了第一次读取它给出奇数值)。

但是写作正在做一些与我想要的完全不同的事情。

您可以在下面找到代码:

sPLC->SetBitAt 方法:

写数据库方法:

我实际上收到消息“Gelukt”,但它仍然写入 rwong 值。所以填写我的buffer. 我在缓冲区中做错了吗?

在 C# 中,我有相同类型的应用程序,除了缓冲区是byte buffer[];

我的问题是:

  • byte* buffer;C++中的a和C#中的a有什么区别byte buffer[];
  • 当我在调试时将鼠标悬停在缓冲区上时,它会显示buffer* = 0 ''. 这是否意味着它是空的?如果是这样,为什么它仍然向我的 PLC 发送随机数?
0 投票
1 回答
1086 浏览

timer - 西门子 PLC S7 1200 TOF 问题

假设我有一个可以自动切换其状态的布尔输入。从 0 切换到 1 和从 1 切换到 0 设置一个循环。要确定该循环是否有效,循环时间必须至少为 10 秒。

我可以确定一个半球是否无效,但我不知道如何在循环结束时确定它是否无效。

这就是我所拥有的:

在此处输入图像描述