S7-1200和1500PLC与条码枪建立TCP_IP通信的具体方法示例今天和大家分享西门子S7-1200和1500PLC如何获取条码枪的扫描数据,这种案例中一般PLC作为TCP/IP的客户端(只接收数据,不发送数据),条码枪作为TCP/IP的服务器。如下图所示,在指令—通信—开放式用户通信中可以找到相关的通信指令,这里可以看到有TRCV_C和TRCV两个接收指令,这两者的区别是TRCV_C是建立连接并接收数据集成在一起的,而TRCV是没有建立连接,只负责接收数据的。我们这里使用TRCV_C来举例说明:如下图所示,我们拖拽TRCV_C指令到OB1中,此时系统会自动生成一个背景DB块,点击确定即
我有一个由两个服务组成的Windows服务项目,service1和service2。我们如何在这两个服务之间进行通信?例如,我们如何让service1启动service2?我可以使用ServiceController类来执行此操作吗?您对此有何建议? 最佳答案 ServiceController类包含一个采用int的ExecuteCommand方法。因此,如果您可以使用非常有限的参数,您的两个服务可以通过相互发送ExecuteCommand消息来进行通信。但是,正如其他张贴者评论的那样,WCF可能是更好的答案。您可以创建命名管道或在
我有一个启动子进程的应用程序。子进程从标准输入读取要操作的文件。对于某些操作,它需要一个输入文件,其中包含有关如何处理它所操作的文件的信息——我们称之为“控制文件”。控制文件的名称也从标准输入中读取。父应用程序可以使用临时文件作为控制文件,但我更愿意避免使用真正的磁盘备份文件。在Linux上,这很简单:我可以创建一个Unix管道,fork,在启动子进程之前关闭管道的各个端点,然后使用/dev/fd/3(或任何文件描述符)作为控制文件名,然后将控制数据写入父应用程序中的管道。或者,我可以在/tmp(或其他任何内容)中使用命名管道。我怎样才能在Windows上实现类似的功能?Windows
我目前正在开发一个应用程序,我将使用C#和WPF打开多个窗口。是否有一种模式或通用方法可用于帮助促进打开的Windows或/和UserControl之间的通信?例如,一个窗口,我们称它为“层次结构窗口”,可能会显示世界上国家、省份和城市的层次结构。除此之外,还有几个其他窗口可以显示省或市,例如OR允许您创建省或市。在创建新城市的情况下,我的“城市窗口”与我的“层次结构窗口”就添加城市或删除城市进行沟通的最佳方式是什么?请记住,创建城市时甚至可能不会打开“层次结构窗口”。此时,无需响应/操作。 最佳答案 有两种常见的方法:使用依赖注入
我正在从事一个项目,以异步方式将Windows写请求从一个硬盘实时复制到另一个硬盘。刚接触windows下的内核态驱动开发,想做的是监听IO请求。我进行了很多搜索,但没有按应有的方式记录此区域。我进行了搜索并找到了4个线索(但肯定没有一个是最好的开始选择)IRPWindows驱动程序使用IO请求数据包在它们与操作系统之间进行通信,但我能否监控硬盘驱动程序使用的IRP?安全性如何?Windows过滤器驱动程序系统过滤驱动级别从上到下有很多,应该用哪一个?我能过滤硬盘驱动程序使用的IO吗?IOHookWindows防病毒软件使用此技术来挂接IO并检查文件。在我的情况下使用它可靠吗?内核事件
以下是我在Windows10上为客户端/服务器控制台应用程序进行相互SSL身份验证的设置:有一个服务器监听器控制台应用程序只接受TLS1.0连接。客户端控制台应用程序使用SslStream.AuthenticateAsClient配置安全连接并使用TLS1.2连接。我使用以下示例进行相互SSL身份验证:http://www.codeproject.com/Articles/326574/An-Introduction-to-Mutual-SSL-Authentication服务器代码:sslStream.AuthenticateAsServer(certificate,true,Ssl
我成功地将另一个窗口的内容(现在在我的测试用例中,记事本)投影到我自己的窗口中。它工作得很好。我无法做到的是卡住它,正如API使用DwmSetWindowAttribute(here)和参数DWMWA_FREEZE_REPRESENTATION(here)所提供的那样,根据互联网等于15。dwmSetWindowAttribute(MyWindow,15,@Value,1)我几乎尝试了所有变体。发送1个字节,发送4个字节,值1、0,“maxdword”等。返回值始终为-2147024809,除非我弄错了-表示“无效参数”。由于BitBlt的速度较慢,通过获取我正在投影的窗口的DC来使用
我已经能够成功地使用logman来转储一些内核跟踪。但是,我希望能够以编程方式在我的应用程序中启用内核事件的实时消耗(主要是线程/进程创建/删除和文件I/O)。完成此任务的最佳方法是什么? 最佳答案 您在StartTrace中启用内核事件.在EVENT_TRACE_PROPERTIES您传递给StartTrace,EnableFlags包含不同内核事件提供程序的各种标志。将EVENT_TRACE_PROPERTIES中的LogFileMode设置为EVENT_TRACE_REAL_TIME_MODE成为实时消费者。然后您可以使用Pr
对于我的一个项目,我需要开发一个软件,该软件需要在从应用程序接收到触发器后在100毫秒内从并行端口获取2000个数据。这意味着并行端口需要以50微秒的间隔读取。数据频率设置为10KHz。因此,这个采集过程应该是实时的,精度为微秒级。我正在尝试用Java编程。到目前为止,我已经能够从并行端口获取数据,但很难保持时间间隔。我的问题是:这样的时间(微秒)精度真的可以在windowsxp环境下完成吗?如果是,能否请您指出一些指南/资源?如有任何帮助,我们将不胜感激。 最佳答案 这取决于您的软件是否必须可靠地工作或仅在大多数情况下工作。对于普
我有一个使用32位第三方库的32位应用程序。现在我必须将我的应用程序设为64位,以便它可以利用64位地址空间(大内存)。由于我无法将32位库加载到64位应用程序进程中,我正在考虑在第三方库上创建32位可执行包装器,并使用IPC(命名管道/套接字)从我的64位应用程序进行通信。所以我的问题是他们这样做会有什么问题吗?此外,如果我必须在64位系统上安装我的应用程序,所有与我的应用程序相关的文件都将被复制到“c:\ProgramFiles”目录。现在我可以将我的32位第三方exe包装器保留在同一个“c:\ProgramFiles”中,还是我需要复制到“c:\ProgramFiles(x86)