问题标签 [plc]
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.
java - 从 Android 向 PLC 发送布尔值
我能够与 PLC 建立连接以从中读取数据。现在有一个问题,我必须编写一种方法来修改来自 PLC 的数据。为此,我必须向 PLC 发送两个值:一个 int 值和一个 boolean 值。我通过 net.wimpi.modbus 包中的类解决了 int 值。但是当谈到布尔值时,我不知道该怎么做。
如果有人和我现在有同样的问题,你能否给我一个参考,我可以找到一个解决方案或一个非常好的教程的链接来解决我的问题?有人在这个问题中发布了几个链接,但它让我看到了与与 PLC 的通信以及如何处理 PLC 的数据没有太大关系的教程。
编辑
我与 Modicon M340 PLC 建立了连接,我使用 net.wimpi.modbus 包的类进行连接。ModbusTCPTransaction
我通过类和在我的代码中建立连接,并通过类和TCPMasterConnection
读取值。ReadMultipleRegistersRequest
ReadMultipleRegistersResponse
我为连接制作的代码:
为了读取这些值,我一直调用下一个代码。我只通过从 PLC 上声明的偏移量读取的字来完成读取和写入 int、String 和 float 值:
编辑 2
我想我完成了我想要的。我使用 4 个类来读取线圈:
ReadCoilsRequest
ReadCoilsResponse
WriteMultipleCoilsRequest
WriteMultileCoilsResponse
我所做的是将线圈读写到 PLC 中的两种方法:
另外,我创建了一个使用 Coils 类读取 BitVector 变量的方法:
在此之后,我用来将位设置为 1 或 0 的方法是在我的代码中使用来自 net.wimpi.modbus.util 包的 BitVector 类的本机函数:
注意:重要的是要记住,每次您要向 PLC 读取或写入值时,最好的方法是打开关闭与 PLC 的连接。
plc - 转到显示按钮 Factorytalk 查看 ME?
我正在使用 Factor Talk View ME 对 AB PanelView 1000 HMI 进行编程,但我不知道如何对按钮进行编程以激活“手动”模式,然后在按下按钮后直接进入显示。我可以用两个单独的按钮单独设置它们,但不确定这是否可以在一个按钮中完成?
plc - “MOVE”块的目的?
当输出只是在功能块图中分配输入值时,使用 MOVE 块而不是直接连接有什么区别?
plc - PLC 查看地址的位
我正在使用 Omron PLC 并查看内存中的这个位 CIO1767 BIT 14 在二进制视图中
它要么是 1(开)要么是 0(关)
我想放入梯形逻辑。如果这个位是 on do .... 但不知道如何写那个位地址。
首先,我是否必须使用比较来查看它是 1 还是 0,或者我可以做一个常开,如果它是 0,它会给我 NC?
另外,如果不清楚,我该如何写这个我正在尝试 CIO1767.14 但这似乎不起作用?谢谢格伦
plc - CJ1W-CT021 卡错误 Omron PLC
我在 CJ1W-CT021 卡上收到此错误。它在运行程序一段时间后突然发生。我是通过 IO 表和单元设置找到它的。单击该卡的参数,发现两个设置为红色。
输出控制模式和/或计数器输出模式。这是在那里阅读
不知道这些应该如何或为什么会改变
我添加了一些新代码,但没有什么大的,甚至没有真正使用过,因为我已经跳出了新梯级的输出。我认为可能导致这种情况的一件事是程序的每个循环都在检查连接到此卡的编码器的值。也许检查它太频繁了?无论如何,如果有人知道这些做什么或它们将如何改变,请发布。谢谢格伦
编辑..我想添加我使用的位,不认为任何是这张卡内部 io 的一部分,但我可能错了?
和
c# - RS232通讯协议三菱FX3G PLC
有人知道三菱FX3G PLC的RS232口通讯的通讯协议吗?
我搜索了三菱和谷歌的网站,但找不到要发送的命令的语法以获取 PLC 中特定寄存器的数据。
我发现了命令的以下部分:
- BR = 位读取
- BW = 位写入
- WR = 字读取
- WW = 字写入
我找不到我应该使用直电缆还是交叉电缆,甚至找不到我应该以哪个波特率进行通信(或其他设置,如数据位、停止位和奇偶校验)
有人对与 FX3G PLC 进行 RS232 通信有任何经验吗?
- 什么是波特率(和其他通信设置)?
- 命令的标题是如何建立的?
- 命令本身是如何建立的?
- 校验和是如何计算的?
(使用哪种编码语言或只是协议手册都没有关系)
plc - PLC 的信号处理或算法编程
我有一个应用程序,它将电压和温度作为模拟输入,并使用涉及信号处理的算法进行一些处理,例如低通滤波、指数平滑和其他通常可以用高级编程语言完成的步骤,例如C 或 C++。
我很好奇如何使用 PLC,尤其是 Allen-Bradley Control-Logix 系统来执行这些相同的步骤?在我看来,带有梯形逻辑的指令集对此太有限了。我可以使用结构化文本执行此操作吗?
plc - Pi Historian,仅在值等于时显示结果
我正在使用 PI Historian 从一些标记点读取值。
我正在使用这个特殊的 Historian 软件http://www.osisoft.com/
如果包含某些“文本”或“结果”,我想知道是否可以显示结果
在哪里说标签掩码我可以放置我想要搜索的标签,在我得到那个标签之后,我可以做一个当前值或采样数据,或定时,或计算。
相反,我希望它显示具有示例“书”质量标签的当前值的标签
android - 在 Android 中使用 LibNoDave 库,总是从 PLC 内存接收 0
我正在尝试使用 Android 设备(当前使用模拟器)与我的 S7-1200 PLC 通信。我找到了示例程序,但我无法让它工作。
这是主程序:
这是 TestISOTCP 类:
连接似乎正在工作,我可以 ping 它并且代码的第一部分显示连接状态正常。
但是,每个返回值都等于 0,我确定我在 PLC 中设置了它。我还在PLC中启用了网络服务器功能(据我所知,这是必要的)。
java - 使用套接字编写 Java 程序以连接到 PLC(可编程逻辑控制器)
我正在编写一个程序,该程序通过套接字从 PLC(Allen Bradley 1756 L63)中获取模拟和离散数据点。到目前为止,我在创建套接字时遇到了麻烦。我的代码如下:
当我运行程序时,我得到一个连接被拒绝的异常。
输出:
谁能给我一些指导?