问题标签 [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 - 设置类路径后是否需要从 jar 文件中导入包?
所以这是交易 - 我下载了一个需要与 Allen Bradley PLC 通信的 jar 文件。自然地,我设置了 CLASSPATH 并希望能够从 jar 文件中的一个类中创建一个带有构造函数的程序,然后按照我的方式进行操作。此情况并非如此。
这是我的类路径:
这是我程序中的代码:
我编译并得到以下错误:
我的程序和 jar 文件在同一个目录中。我是否需要导入 jar 文件中的任何包,或者我是否缺少其他完全不同的东西?
提前致谢
编辑:
这是我的代码:
我收到错误说 se.opendataexchange.ethernetip4j.clx.ControlLogixConnector 不存在并且 ControlLogixConnector 对象不存在(使用 javac PLCServer.java 编译)。
c# - Libnodave:connectPLC 返回 -1
我正在尝试使用 Libnodave dll 通过 CP 343-1 Lean 通过以太网连接到 Siemens CPU315-2 DP。
我已经尝试了下载文件中包含的示例程序“simpleISO_TCP.cs”。函数 openSocket 工作得很好,但函数 connectPLC 总是返回 -1 ,这意味着与 PLC 的连接失败。
任何人都知道什么可能导致这个问题?
PS:我在 Windows 7 64 位中使用 Visual Studio 2012。
plc - 菲尼克斯电气PLC软件用什么语言组装?
我很难找到我用结构化文本和指令列表语言编写的程序的汇编代码。我找不到书面代码的二进制代码,也不知道它们是在哪个 ISA 中转换的。我为这些二进制代码编写了一个反汇编程序。
plc - 在欧姆龙PLC中使用<>
我的梯形逻辑中有一个 <>305,就像这样
然后在它之后我有一个小于和一个更大的然后像这样
它的作用是检查编码器当前值 (d19720) 和存储值 (d3890) 以确保它们是相同的值。由于它是一个编码器,因此该值不需要太多 + 或 - 2 。
有什么办法可以保留上面的代码,但说它是否大于或小于当前数字 +/- 4?
因此,如果存储的值为 500 ,则更大的 then 直到 504 才会出现,而较小的 then 直到 496 才会出现
node.js - Node.js:同一消息的多个副本
我的应用程序使用 node.js 时遇到问题。我编写了一个小应用程序,允许网页和 PLC 之间的通信。与web页面的通信基于socket.io,与PLC的通信基于net.createConnection。
我的应用程序从网页接收命令,然后使用标准读取/写入协议创建消息并将这些消息发送到 PLC。PLC 响应也基于 F/W 协议,当从我的应用程序接收到响应消息时,它应该解码并仅将少量信息发送到网页。
所有过程都在工作,但我看到在每次操作之后(如果获取或写入并不重要),来自 PLC 的消息会再复制一次。例如:
我已经使用wireshark检查这是否是PLC问题,但消息是正确的并且只有一个。我认为 node.js 缓冲区或类似的东西有问题。
有什么建议吗?
这是代码:
!!!更新 !!!
我做了一些其他的测试,结果是没有真正的消息排队,测试的结果是:
等等
serial-port - 从 PC 到 PLC 的 RS232 连接比使用 USB2RS232 电缆慢?
我有一台 PC 通过 USB2RS232 电缆连接到 PLC(Mitsubishi Q 系列)。电缆插入 PC 端,然后插入串行电缆,然后插入 PLC。我将波特率设置为 19200,一切正常。我的问题是,PC 时不时会在我身上出现蓝屏。当我检查转储文件时,问题似乎与 USB2RS232 电缆 (ftdi) 的驱动程序有关。我更新到最新的驱动程序,但仍然蓝屏(PC 运行的是 Windows 7)。
无论如何,我用另一台具有专用 RS232 端口的 PC 替换了 PC。现在我不断收到由 PLC 的响应指示的通信问题。碰巧我将 PC 和 PLC 的波特率都降低到了 9600。这个问题似乎已经消失了。
我的问题是为什么移除 USB2RS232 电缆会导致我不得不减慢通信速度?两种设备都可以以大于 19200 的速度进行通信,我认为使用串行电缆从串行端口 (PC) 到串行端口 (PLC) 会更好。
编辑:问题可能已解决 - 仍在测试
感谢你们的一些意见,我可能已经解决了这个问题。以下是我在使用直接 RS232 转 RS232 时将速度恢复到 19200 的以下几点。
- 即使在设备上没有检测到噪音,也使用了屏蔽电缆。
- PC 程序将在向 PLC 发送数据之间等待 100 毫秒。我在某处读到 100 毫秒是 PLC 扫描时间的一个很好的近似值。
ruby - 有人知道是否有任何用于工业环境的红宝石PLC程序项目?
我是 Omron 设备的 PLC 程序员,现在我发现 ruby 是一种非常好的语言。我看到嵌入式设备有嵌入式红宝石。我想知道PLC是否有任何宝石,如果没有,我可能会考虑研究如何开发一个。
plc - PLC梯形图编程的最佳IDE
最近我想学习 PLC 的梯形逻辑编程,但我想知道是否有任何 IDE 可以比Step7或cx-programmer更好地创建梯形程序?我可以使用Visual Studio或Netbeans的任何插件吗?最后,在 Linux 或 Microsoft Windows 下使用 PLC 更好吗?
更新 1:在谷歌上搜索后,我发现梯形图编程不依赖于 PLC 品牌或其型号,所以我在问题中没有提到任何品牌。
c# - 如何获取 PLC S7-300 串行十六进制数据
我们有带以太网通讯端口的西门子 PLC S7-300。哪种类型的 java 或其他语言编码可用于获取 plc 的帧数据?该 PLC 仅与 step-7 软件通信。
这个帧结构数据也可以存储在一些文本文件的xml中,这样我们就可以将它连续发送到互联网上。
请帮我
algorithm - 一个聪明的自制模数实现
我正在用一些遗留软件(RSLogix 500,别问)对 PLC 进行编程,它本身不支持模数运算,但我需要一个。我无权访问:模数、整数除法、局部变量、截断操作(尽管我可以通过舍入来破解它)。此外,我可以使用的所有变量都按数据类型排列在表格中。最后,它应该适用于浮点小数,例如12345.678 MOD 10000 = 2345.678
.
如果我们做我们的等式:
有两个明显的实现。
实现1:进行浮点除法:dividend / divisor = decimal quotient
. 然后拼凑一个截断操作,这样你就可以找到integer quotient
. 将它乘以divisor
并找到 和 之间的差异dividend
,从而得到remainder
。
我不喜欢这样,因为它涉及到一堆不同类型的变量。我不能将变量“传递”给子程序,所以我只需要分配位于多个不同变量表中的一些全局变量,这很难理解。不幸的是,“难以理解”很重要,因为它需要足够简单,让维护人员可以搞砸。
实现 2:创建一个循环,使得 while dividend > divisor
divisor = dividend - divisor
. 这是非常干净的,但它违反了 PLC 编程的一条重要规则,即永远不要使用循环,因为如果有人无意中修改了索引计数器,你可能会陷入无限循环,机器会发疯或出现不可恢复的故障。Plus 回路很难进行维护故障排除。另外,我什至没有循环指令,我必须使用标签和跳转。哇。
所以我想知道是否有人有任何聪明的数学技巧或比这些更聪明的模数实现。我可以访问 + - * /、指数、sqrt、三角函数、日志、abs 值和 AND/OR/NOT/XOR。