For reading serial data continuously, a while loop is perfect. If the serial instrument does not require a command to return a reading, the minimum you would need in the loop is a VISA Read. If the byte count expected is a constant, just wire that number to the VISA Read. If it varies, you would use the function VISA Bytes at Serial Port to determine how many bytes are available. There is no need for a sequence structure (what I think you're calling frames). In fact, you should try to avoid sequence structures. Usually, there's no need. Outside the while loop is the VISA Open and Initialize Serial Port. When the while loop finishes, then you do a VISA Close.
For your control, what you want to use is the event structure. There are several shipping examples of this. Basically, whenever a button is clicked, an event is fired. Inside the event you would have your code to write to the digital line.