DSC Modbus Server

Hello there,
I have an upcoming project where I will use DSC and Modbus for the first time.  My sensor network will be Modbus over RS485 but the piece of plant I need to talk to is Modbus over RS232.
When in a LabVIEW project I create a new Modbus I/O Server, I have the option to select Modbus Serial or Modbus Ethernet. 
My question is - does Modbus Serial support RS232 and RS485?
Thank you,
Martin

Here are a few more links that you may find useful.
Connect LabVIEW to Any PLC With Modbus - http://www.ni.com/white-paper/13911/en
Using Touch Screens with LabVIEW through Modbus Serial Devices - http://www.ni.com/white-paper/4722/en#toc2
Best Regards
Paul
Applications Engineer
NIUK
I accept Kudos and BTC Tips :-D
Address: 1NyXnWf9kdjVzjWcW5w4P1V3b1EY4yXP12

Similar Messages

  • DSC Pull Server functional description

    I am trying to find a functional description of how a DSC Pull Server fits into the model.
    My understanding is that if I place a Custom Resource Module in the \WindowsPowerShell\Modules folder of the DSC Pull Server and I use Import-DscModule in the configuration that the file will be downloaded to the client auto-magically and used.
    But what I am not clear on is MSI and EXE files with the Package Provider.
    Do I place those some place onto he Pull Server and they magically get downloaded? 
    Do I need to define in the configuration that they need to be explicitly downloaded and placed in a particular path? 
    If so, is there some path they should exit in on the client (expected location)?
    I am just trying to wrap my head around dealing with DSC and 3rd party software and the Pull Server model.
    Thanks!
    Brian Ehlert
    http://ITProctology.blogspot.com
    Learn. Apply. Repeat.
    Disclaimer: Attempting change is of your own free will.

    Hi BrianEh,
    Based on my research, to add content in Pull server, we need to Package each custom resource into its own ZIP file and copy it to Folder location (e.g $env:PROGRAMFILES\WindowsPowerShell\DscService\Modules),  which has been defined during the Pull
    server configuration, and also need to create a checksum file for each of the above ZIP files.
    After configure the pull server and the DSC client, with patiently minutes the configuration should be downloaded to your client, however, you can also force this with powershell script.
    For more detailed information to configure powershell DSC pull mode, please refer to these articles:
    How to Deploy and Discover Windows PowerShell Desired State Configuration Resources
    PowerShell DSC Resource for configuring Pull Server environment
    Configuring PowerShell DSC Pull Mode
    If I have any misunderstanding, please let me know.
    If you have any feedback on our support, please click here.
    Best Regards,
    Anna
    TechNet Community Support

  • Cannot write negative values on modbus server on cRIO 9068

    Hello everybody,
    I'm trying to move a project from a cRIO 9114 platform to a cRIO9068, the reason is for a heavy difference in terms of CPU power, memory, FPGA performance etc..
    On real time side I deploy a TCP modbus server, and I publish just I16 data.
    The problem comes when the program try to write a negative value in a variable binded on modbus. That variable is in the same format (I16), so the program could write negative values between 0 and -32768, but everytime the modbus force the value to zero.
    I tested the modbus also with "NI Distribuited System Manager 2014" but still cannot write negative values on I16, but I can if I consider data as I32!!!
    (see enclosed files)
    Moreover I deployed a modbus server on my PC and in this case all goes right.
    Some more information:
    I'm working with labView 14.0f1.
    On cRIO are installed "Labview RealTIme 14.0.0" and "Modbus I/O server 14.0.0".
    I tested the feature on three different cRIO 9068 with  same result.
    I'm thinking that's something wrong with cRIO 9068, can somebody help me?
    Thank you
    MZ
    Solved!
    Go to Solution.
    Attachments:
    Force negative value I16.jpg ‏48 KB
    Force negative value I32.jpg ‏48 KB

    marcello.zoppetti wrote:
    How can I track the CAR?
    Just watch for it in the new release notes for a version of LabVIEW and the patches.  NI does not make their bug reports public.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Dsc module modbus server handling uint8 variables

    Hello!
    I have a problem with handling Modbus uint8 variables in the dsc module . Unit8 Shared variables
    are available in labview but Modbus i/o server Unit8 variables are not:
    http://zone.ni.com/reference/en-XX/help/371618J-01/lvmve/dsc_modbus_using/
    In our controller we split some 16 bit modbus registers into two 8 bit variables to pack some more usefull data in there. 
    All of my shared variables are running nicely in the shared variable engine but I've no way of
    easily binding them to my Modbus i/o server uint8 variables easily.
    Any ideas?
    I like the auto-scaling logging and binding of the DSC module shared variables
    so I want to avoid some manual labview processes.
    I want to view all shared variables in my front ponel at run time. I have 300+ variables so I'm trying to avoiding manual one-off hacks.
    James

    jamesy777, 
    The reason Unit8 variables are not available in the Modbus I/O sever is the nature of the I/O server data types compatible with the registers. If you’re writing to two registers, you can just read those two separate registers as U16s in LabVIEW. Otherwise, if you’re writing to the upper and lower half of the register, you can split the register into its 8-bit halves using the Split Number function in LabVIEW.
    Split Number Function - http://zone.ni.com/reference/en-XX/help/371361L-01/glang/split_number/
    Regards, 
     

  • Programmat​ically configure Modbus server.

    Is it possible to programmatically configure an I/O server (e.g. Modbus Ethernet) in any way other than the Express VI provided with the DSC module? Many of the attributes are "hidden" in the dialog boxes, instead of being easily readable on the block diagram. Additionally, if I want to create a class encapsulating Modbus clients, there seems little ability to write accessors for attributes such as "maximum data points per command" or "first word low in 32-bit data types."
    Any help/thoughts are appreciated. If the functionality doesn't exist, then I hereby submit a feature request.

    I'm learning how to use the Actor Framework to build an application for controlling, monitoring and aquiring data from a large research facility. One thought for creating a hardware abstraction layer is to have a generic "Modbus client" class. Modbus clients all share general characteristics, such as the attribute settings currently rolled up in the Express VI for creating and configuring I/O servers. Certainly, one can imagine setting up each client "by hand," but then you're not saving yourself any work. If you could handle full setup programmatically, then when a new Modbus client object is instantiated, the work load should be lessened. There's also the issue of transparency to someone creating a new object. Since you can't write accessor methods for advanced attributes, the only way to interact with those attributes is via the dialog box, which obscures how the client is configured and subsequently behaves.
    Since I'm relatively new to the OOP stuff, it's possible that I'm overthinking the whole issue and making it harder than it needs to be. It still would be nice to be able to write a method to set the advanced attributes, instead of having to hunt through dialog boxes to find the options. I'm not generally a fan of Express VIs, because I'm often engaged in tasks that are beyond the functionality they provide and they obscure reading of code by failing to provide full disclosure about inputs and outputs.

  • Modbus Ethernet read and write to a Eurotherm 6180XIO Modbus server using LV8.2 shared variables

    I am having EXTREME difficulty trying to establish communications with a Modbus device using LV8.2 shared variables.  The device is a Eurotherm 6180XIO Datalogger configured as a Modbus master.  The PC and a cFP-1804 are slaves.  All IP addresses are set correctly.  This approach using shared variables would seem simple, but I can't find any examples or proper guidance on how to get it working.  I am trying to avoid having to mess around with TCP/IP, OPC, or any other old-fashioned method.
    I have read many threads on related topics but none directly apply to this situation.  I have created a library containing a Modbus I/O server and shared variables bound to read and write holding registers.  I have followed all recommended tips for creating such variables but I can neither read or write data.  All data types are U16 due to Modbus protocol limitations.  I have also applied the LV x10 factor in the most significant digit in the register offset (6 digits instead of 5).
    I have a cFP-1804 on the same network which reads into the datalogger OK.  The registers I use are 31000 (for CH0 on module 0, 31002 for CH1, etc) and the data can be read as FLOAT32.  I have updated the firmwate on the 1804 to the latest level.  I cannot even get shared variables to read SGL values.  Using registers 301001 for CH0 and 301002 for CH1 I can only read U16 values, and not a 2-word SGL.
    Third party Modbus simulation software is able to write to and read from registers very easily, but not LabVIEW.
    Some questions are:
    - do I use a Modbus master or slave as an I/O server in the library as a target for binding the shared variables?
    - is there some other wierd translation in register offsets between LabVIEW and traditional Modbus?
    - is this actually possible using shared variables or am I wasting my time?

    Sending the whole 60-character string using a string or array would be the most efficient.  I have tried both methods, and these only cause the datalogger to flag a message log but no text is displayed.
    For a string variable, I have used the following binding "My Computer\Modbus Test.lvlib\ModbusServer6180\442305", where ModbusServer6180 is a Modbus I/O server configured with the logger IP address, and 42304 is the register offset at the start of the text block in the logger.  I need to write to 30 consecutive registers starting with this one.  I am not using buffering and have not enabled single writer.
    Can anyone confirm whether this method should work in 8.2?
    Does the string need a special termination character?

  • DSC, SQL Server 2012 Enterprise sp2 x64, SQL Server Failover Cluster Install not succeeding

    Summary: DSC fails to fully install the SQL Server 2012 Failover Cluster, but the identical code snippet below run in powershell ise with administrator credentials works perfectly as does running the SQL server install interface.
    In order to develop DSC configurations, I have set up a Windows Server 2012 R2 failover cluster in VMware Workstation v10 consisting of 3 nodes.  All have the same Windows Server 2012 version and have been fully patched via Microsoft Updates. 
    The cluster properly fails over on command and the cluster validates.  Powershell 4.0 is being used as installed in windows.
    PDC
    Node1
    Node2
    The DSC script builds up the parameters to setup.exe for SQL Server.  Here is the cmd that gets built...
    $cmd2 = "C:\SOFTWARE\SQL\Setup.exe /Q /ACTION=InstallFailoverCluster /INSTANCENAME=MSSQLSERVER /INSTANCEID=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS /UpdateEnabled=false /IndicateProgress=false /FEATURES=SQLEngine,FullText,SSMS,ADV_SSMS,BIDS,IS,BC,CONN,BOL /SECURITYMODE=SQL /SAPWD=password#1 /SQLSVCACCOUNT=SAASLAB1\sql_services /SQLSVCPASSWORD=password#1 /SQLSYSADMINACCOUNTS=`"SAASLAB1\sql_admin`" `"SAASLAB1\sql_services`" `"SAASLAB1\cubara01`" /AGTSVCACCOUNT=SAASLAB1\sql_services /AGTSVCPASSWORD=password#1 /ISSVCACCOUNT=SAASLAB1\sql_services /ISSVCPASSWORD=password#1 /ISSVCSTARTUPTYPE=Automatic /FAILOVERCLUSTERDISKS=MountRoot /FAILOVERCLUSTERGROUP='SQL Server (MSSQLSERVER)' /FAILOVERCLUSTERNETWORKNAME=SQLClusterLab1 /FAILOVERCLUSTERIPADDRESSES=`"IPv4;192.168.100.15;LAN;255.255.255.0`" /INSTALLSQLDATADIR=M:\SAN\SQLData\MSSQLSERVER /SQLUSERDBDIR=M:\SAN\SQLData\MSSQLSERVER /SQLUSERDBLOGDIR=M:\SAN\SQLLogs\MSSQLSERVER /SQLTEMPDBDIR=M:\SAN\SQLTempDB\MSSQLSERVER /SQLTEMPDBLOGDIR=M:\SAN\SQLTempDB\MSSQLSERVER /SQLBACKUPDIR=M:\SAN\Backups\MSSQLSERVER > C:\Logs\sqlInstall-log.txt "
    Invoke-Expression $cmd2
    When I run this specific command in Powershell ISE running as administrator, logged in as domain account that is in the Node1's administrators group and has domain administrative authority, it works perfectly fine and sets up the initial node properly.
    When I use the EXACT SAME code above pasted into my custom DSC resource, as a test with a known successful install, run with the same user as above, it does NOT completely install the cluster properly.  It still installs 17 applications
    related to SQL Server and seems to properly configure everything except the cluster.  The Failover Cluster Manager shows that the SQL Server Role will not come on line and the SQL Server Agent Role is not created. 
    The code is run on Node1 so the setup folder is local to Node1.
    The ConfigurationFile.ini files for the two types of installs are identical.
    Summary.txt does have issues..
    Feature:                       Database Engine Services
      Status:                        Failed: see logs for details
      Reason for failure:            An error occurred during the setup process of the feature.
      Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Component name:                SQL Server Database Engine Services Instance Features
      Component error code:          0x86D8003A
      Error description:             The cluster resource 'SQL Server' could not be brought online.  Error: There was a failure to call cluster code from a provider. Exception message: Generic
    failure . Status code: 5023. Description: The group or resource is not in the correct state to perform the requested operation.  .
    It feels like this is a security issue with DSC or an issue with the setup in SQL Server, but please note I have granted administrators group and domain administrators authority.  The nodes were built with the same login.  Windows firewall
    is completely disabled.
    Please let me know if any more detail is required.

    Hi Lydia,
    Thanks for your interest and help.
    I tried "Option 3 (recommended)" and that did not help.
    The issue I encounter with the fail-over cluster only occurs when trying to install with DSC!
    Using the SQL Server Install wizard, Command Prompt and even in Powershell by invoking the setup.exe all work perfectly.
    So, to reiterate, this issue only occurs while running in the context of DSC.
    I am using the same domain login with Domain Admin Security and locally the account has Administrators group credentials.  The SQL Server Service account also has Administrators Group Credentials.

  • OPC/DSC/Kepware Server

    When I attempt to deploy my application, I receive "Deployment failed: The client process cannot communicate with the configuration server process....."
    I have DSC Run Time module on the target machine and I can read the OPC tags on the Kepware Quick Client so I narrowed it down to something to do with LV.  I've read about the "identity of interactive user" and I do have that checked in the DCOM for the client server.
    Thanks in advance for the help/ideas.

    Daniel, here is the error message I receive.
    The OPC server is located on 192.168.1.10 so it is the same subnet
    Attachments:
    deploymenterror.JPG ‏43 KB

  • Labview dsc client server

    Hi,
    I use LV7 and labview dsc.
    I would like to read historical traces from a client PC. my database is saved on a server PC. I'm using "Read Traces.vi". It works well but i have to wait 10 or 20 seconds to have results (for only 100 points).
    I have no problem for reading tags in real time but it is very too slow for reading historical data.
    I would like to know if there is a solution to minimise time for echanging historical data.
    Thanks.
    Alexis de la fontaine
    SECMAI

    Hi Alexis,
    Are you observing the same delay with Read Traces.vi when you read traces locally? 100 points means 100 I/O points (tags) ?
    Remzi A.
    Applications Engineering
    National Instruments

  • Dsc modbus - Serial communication input/holding registers

    Hello,
    I am trying to create a labview application to act as a Modbus master and control multiple stepper motors. I have the DSC module in labview and am using a serial communication with an RS-485 converter. I have followed this guide: http://www.ni.com/white-paper/13911/en/  However, the driver I am using does not support coils, it only uses input and holding registers and I have not found a guide or tutorial that shows me how to create a labview application that can read and write to a specific address. For now all I want to do is turn the motor on and off using labview. I have used a modbus simulator to communicate with the driver and can do everything I want to do through the simulator. I can not get labview to do anything for me. I would be very happy if someone could direct me to a tutorial that can help me understand labview dsc module for reading and writing to addresses using modbus. 
    Meesh

    Ok, so this is really strange. I solved my problem in a round about sort of way. I'm using a modbus simulator (mdbus) to help me communicate with the driver/stepper motor so I know which address to use. But after I use the simulator I get a communication port error when I try to use Labview. It's like the port is locked in with the simulator and I can't end the connection and let Labview use the same communication port. I can't find anyway to fix the problem except going to this NI site: http://www.ni.com/download/labview-run-time-engine-6.1/746/en/  downloading this software and using the "repair" function. Then I can do a system restart and cycle the power on the driver/motor and then Labview with work again through the correct port. But if I need to use the simulator again then I have to go through this whole process again. Does anyone know what the heck is going on? Or if there is a better way to clear the communication port?? 

  • Error in writing to tags on eurotherm modbus server

    I have been trying to talk to a Eurotherm 2604 controller through the EurothermModbus server using datasockets. I am able to read tag values but not able to write to some of them although I can write to a few of them. The error message displayed is: '1073479674: DataSocketConnect.vi active: cant write data: Access rights dont allow this operation'..If some one could give me a clue why only some write operations are working and not others. The read/write permissions are the same for all of them.

    When you get this error, "browse" your Items and check if the datatype has changed. This could be the problem.
    Also, are you writing from multiple places to a single item? In that case, make sure you have the 'multiple writes' check box checked in the DataSocket Server Manager.
    If the above doesn't help, pls write back with more details.. specifically, how you have configured the items for your device, etc.
    Hope this helps.

  • Mobile module modbus I/O Server

    Hi,
    Is it possible to establish a communiccation with modbus protocol between the PDA (master) and the slave device via WIFI connection?
    I like to do this with configuring the I/O Server, not with the modbus library.
    Best regards,
    Zdenko.

    Hello,
    I am sorry to give you a negative answer to your question.
    I have LabVIEW Mobile module 2009 and DSC  and a PDA target does not support I/O Server.
    I have also installed modbus library, but some functions and proprieties under library's vi s are not supported under mobile target.
    Probabily you could develop very low level code for mobile to implement modbus server, but it's very complicated.
    Regards,
    Emil

  • Modbus library dsc

    SALUDOS A TODOS!!!
     Tengo la siguiente pregunta: Estoy usando LabView 8.20 + DSC module,He creado un Modbus Server para comunicarme con tres varidores de velocidad cada uno con su respectiva Id para el protocolo modbus. Mi pregunta es como puedo hacer que el Modbus server creado en Labview me deje cumunicarme con los tres variadores porque al crear el server solo pude poner la direccion de uno solo..
    Agradeceria mucho su respuesta...
    Saludos...
    Adrian.-

    Bruno:
    Agradesco tu respuesta.. ahora he intentado lo que me has dicho y funciona... pero una pregunta mas, de esta manera el acceso compartido al puerto serie por donde sale la comunicacion lo negocian entre los tres server I/O o yo debo definir un esquema en donde quede perfectamente definido cuando acceder a cada uno de los dispositivos para que no haya conflictos en la comunicacion?. Te consulto esto mas que nada porque he intentado definiendo variables globales de escritura a los dispositivos en forma paralela o simultanea y aveces a alguno de los dispositivos esclavos no le llega la informacion que le envio..
    Atte..
    Adrian.-

  • Failure of LabVIEW DSC 8.0.1 to yield values of Modbus RTU holding registers

    So, I know what I'm doing--or used to. Have done this before in LV 6 and 7. Previously used Lookout OPC drivers and the "Tag Engine".
    Recently with 8.0.1, I first set up the Industrial Automation OPC servers (AKA Lookout) to communicate with the holding registers (40,001-49,999) of my modbus rtu Watlow 96 and MLS316 temperature controllers. Subsequently, with the Server Explorer all of my 133 parameters on our 2 rs485 serial ports are communicating bidirectionally.
    So now Duh, why can I not bind a shared variable to register, say 40,334, and eliminate the OPC? The data is always reported as bad. Neither can I link shared variables to these addresses through the OPC I/O server.
    Am I missing something? Are there any examples of code available where individual modbus holding registers are communicated with bidirectionally?

    Well, this may seem rather silly but I viewed the video demo that NI has on binding modbus registers to shared variables before I even made my attempt.
    Now, differing from the demo video, I am using modbus RTU on a serial port.  Also differing from the video, when I create my shared variables, they are not placed in the same lvlib as the modbus server just created--LabVIEW prompts for a new library to be created.
    Could the NI product service staff please test with a serial modbus RTU device (a real living creature and not just a simulation please) the bidirectional communications and prove functionality with the Shared Variable Monitor of your product?  I suggest that you attempt communicating with holding registers 40,001 through 49,837.
    By the way, my com is set up correctly for I can view and or change all of the desired modbus RTU registers using the OPC Lookout Protocol Drivers through the Server Explorer.
    Please do not send me any more links to videos that test with simulations.  A real solution is required.
    Lloyd Ploense

  • Modbus I/O Server at Run-time

    Hello everyone.
    I needed an software that communicates with a third part PLC (siemens) via Modbus (serial) protocol, and I'm getting some problems with stand-alone application.
    I did the following steps:
    1- Created a new project;
    2- Created a new library;
    3- Created a new I/O Modbus Server (serial master mode);
    4- Created a variables bounded with a holding register (UInt16) from the PLC.
    5- Put that variable on a loop (timed) just to get its value.
    The program also deploys the created library at begin of execution and undeploys it at the end (working).
    The (simple) project worked fine at my development machine (with LabVIEW 8.6 and Real-Time Module installed), so I created a stand-alone application and an installer of it.
    Again, the installed software worked at my PC.
    But, here comes the problem, when I try to run my program at another PC that do not have LabVIEW it doesn't work.
    I have already installed the LV Runtime 8.6, tried to include it at my own installer (at Additional Installers tab - included Distributed System Manager and NI Variable Engine too), and still didn't work!
    I also tried to install the software in another PC, that have LabVIEW 8.6 but not the RT module, and it didn't work as well.
    The library and shared variable seems to be correctly deployed on SVE, so I think the error is related with the Modbus I/O Server.
    So, what can I do to a software using Modbus I/O Server run in a machine without RT development?
    There are some screenshots that I took while running the software at the both (develop. and client) machines above.
    Regards,
    Leandro Rondon
    - Sensoft Indústria e Automação Ltda.
    - Work phone: +55 16 3413-5489
    - Cell phone: +55 16 8827-4025 
    - [email protected] 

    Forgot the images:
     1 ) running the VI at development machine - labview 8.6 with RT module
    2) running the installed software at development machine
    3) distributed system manager from target machine before execution
    4) distr. system manager and the software error

Maybe you are looking for

  • Help-multiple ipods on one computer

    my husband and i each have an ipod with seperate user accounts on itunes. we would like to open his ipod on my computer and bring up all his songs without overwriting or adding my songs to his. does anyone know how to do this?

  • Apex fails to connect after rebooting XE

    Hi: My environment is Apex 4.0.0, Oracle XE 10.2.0, Apex default Gateway, Windows 2008 32 bit. After I reboot the database, Apex fails to connect. If I check the Apex port number, it lists 8080, as expected. (SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;) L

  • AirPort doesn't work after Leopard install

    I have an iMac 20" 2GHz Core 2 Duo and my AirPort doesn't work. I reset my PRAM, erased the hard drive and installed a clean copy of Leopard after picking it up from the Retail store. I had exactly the same problem with 9A559 and the seed update and

  • Can't remove keywords from multiple files

    I can't believe I can't get this working. Say I have 15 images with the same 10 keywords in every file. One of the keywords is "banana" and I want to remove it from all 15 files. I select all the 15 files. When I do that one becomes "active" (it gets

  • Metadata default for Audiobooks is for Music and does not help

    No default metadata for audiobooks -- such as spoken word equalizer, keep place in playback, gapless or name sort. Is there any scripts or automator programs that will do all this?